day06 学习内容

一、Java 的内存管理

管理:

  • 分配:由JVM自动分配内存空间

  • 释放:由JVM自动通过垃圾回收机制释放内存空间

方法的定义在方法区中,方法的执行在栈中

垃圾回收机制:

将内存中的垃圾对象释放。

垃圾对象:不再被任何引用指向的对象

gc释放语句不会使垃圾回收动作立即执行,但可以加快。

二、面向对象的特性之一:封装性

含义

把该隐藏的隐藏起来,该暴露的暴露出来

作用

  1. 保护,避免使用者对类内部定义的直接操作导致的数据错误、混乱、安全性问题。
  2. 隐藏不需要对外提供的实现细节
  3. 增强代码可维护性,便于修改

访问控制修饰符:

public :公共的,可用于修饰属性、方法、类。 在任何地方都可以访问

private :私有的,可用于修饰属性、方法。只能在本类中访问

封装的步骤:

①属性私有化(private)

②提供公共的(public) get/set 方法

三、this 关键字

含义

this :使用在本类中,代表当前对象。可用于调用属性、方法、构造器

使用

  • this.属性
  • this.方法
  • this(……); 调用本类构造器
    • 必须放在构造器的首行
    • 至少有一个构造方法是不用this的。
      • 否则编译报错:递归构造器调用
  • this;在类中使用,代表本类

注意:谁让拥有 this 关键字的方法运行了,当前对象就是谁

作用

  1. 形参与成员变量重名,赋值时使用this.成员变量=形参值
  2. 增强阅读性:表示当前类的变量

UML类图

  • 类名
  • 属性:+属性名:属性类型
    • +:public
    • -:private
  • 方法:+方法名(参数名:参数类型):返回值类型

四、构造器

也叫构造方法,是类的成员之一

目前为止,类的成员

  1. 属性

  2. 方法

  3. 构造器

1、构造器的格式

​ 访问控制修饰符 类名(参数列表){

​ //功能语句

​ }

2、构造器的作用

Person p = new Person();

①创建对象

②为对象进行初始化--对象一被创建的时候就具备的属性和行为

3、构造器的注意

  1. 构造器名==类名
  2. 若未声明构造器,系统会提供一个默认无参的构造器
  3. 构造器没有返回值,也没有return

4、构造器的重载

在同一个类中

①构造器名称相同

②参数列表不同(参数个数、参数类型)

5、为属性赋值的方式

①默认值(缺省值) (int a; //默认0)

②直接显示赋值 (int a = 1;)

③构造器

顺序:①②③

JavaBean 可重用组件

  • 类是公共的
  • 有一个无参的公共的构造器
  • 有属性,且有对应的get、set方法

五、包的管理

作用:

  1. 可用于区分重命名
  2. 可用于控制访问权限(有针对包的修饰符)
  3. 划分项目的结构层次,将功能相近的类划分到同一个包中

package

确定当前类的位置

  1. 卸载源文件可执行代码的首行
  2. 格式:package com.atguigu.project.module;
  3. 命名规范:
    1. 所有字母小写
    2. 通常用公司域名的倒置:com.atguigu.project.module
  4. 每个.代表一层目录

import

确定需要引入类的位置。只能导public修饰的类。

  1. 使用在package和class之间
  2. 有多个引入,并排列出即可
  3. 格式:import 包名.类名;
  4. *代表导入包中所有的类或接口(不包括包)
  5. 如在一个类中使用了两个相同类名,但包名不同,则
    1. 选择一个使用导包的方式
    2. 另外一个使用全类名的方式

全类名

类的全限定名称。

静态导包

static可修饰方法、属性。(静态)

当A类需要调用B类中的大量静态成员,可以静态导包。

import static b.方法;
import static b.属性;
import static b.*;//导入所有静态成员

//用此方法 在A中使用时,前面不需要加“类名.”

不建议过多使用,可读性差,不便维护。

命令行调用

编码:javac -d ./ PackageTest.java

运行:java com.atguigu.java.PackageTest

posted @ 2020-05-01 15:58  萝莉巴索小布丁  阅读(71)  评论(0)    收藏  举报