day06 学习内容
一、Java 的内存管理
管理:
-
分配:由JVM自动分配内存空间
-
释放:由JVM自动通过垃圾回收机制释放内存空间
方法的定义在方法区中,方法的执行在栈中
垃圾回收机制:
将内存中的垃圾对象释放。
垃圾对象:不再被任何引用指向的对象
gc释放语句不会使垃圾回收动作立即执行,但可以加快。
二、面向对象的特性之一:封装性
含义
把该隐藏的隐藏起来,该暴露的暴露出来
作用
- 保护,避免使用者对类内部定义的直接操作导致的数据错误、混乱、安全性问题。
- 隐藏不需要对外提供的实现细节
- 增强代码可维护性,便于修改
访问控制修饰符:
public :公共的,可用于修饰属性、方法、类。 在任何地方都可以访问
private :私有的,可用于修饰属性、方法。只能在本类中访问
封装的步骤:
①属性私有化(private)
②提供公共的(public) get/set 方法
三、this 关键字
含义
this :使用在本类中,代表当前对象。可用于调用属性、方法、构造器
使用
- this.属性
- this.方法
- this(……); 调用本类构造器
- 必须放在构造器的首行
- 至少有一个构造方法是不用this的。
- 否则编译报错:递归构造器调用
- this;在类中使用,代表本类
注意:谁让拥有 this 关键字的方法运行了,当前对象就是谁
作用
- 形参与成员变量重名,赋值时使用
this.成员变量=形参值 - 增强阅读性:表示当前类的变量
UML类图
- 类名
- 属性:
+属性名:属性类型+:public-:private
- 方法:
+方法名(参数名:参数类型):返回值类型
四、构造器
也叫构造方法,是类的成员之一
目前为止,类的成员
-
属性
-
方法
-
构造器
1、构造器的格式
访问控制修饰符 类名(参数列表){
//功能语句
}
2、构造器的作用
Person p = new Person();
①创建对象
②为对象进行初始化--对象一被创建的时候就具备的属性和行为
3、构造器的注意
- 构造器名==类名
- 若未声明构造器,系统会提供一个默认无参的构造器
- 构造器没有返回值,也没有return
4、构造器的重载
在同一个类中
①构造器名称相同
②参数列表不同(参数个数、参数类型)
5、为属性赋值的方式
①默认值(缺省值) (int a; //默认0)
②直接显示赋值 (int a = 1;)
③构造器
顺序:①②③
JavaBean 可重用组件
- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
五、包的管理
作用:
- 可用于区分重命名
- 可用于控制访问权限(有针对包的修饰符)
- 划分项目的结构层次,将功能相近的类划分到同一个包中
package
确定当前类的位置
- 卸载源文件可执行代码的首行
- 格式:
package com.atguigu.project.module; - 命名规范:
- 所有字母小写
- 通常用公司域名的倒置:
com.atguigu.project.module
- 每个
.代表一层目录
import
确定需要引入类的位置。只能导public修饰的类。
- 使用在package和class之间
- 有多个引入,并排列出即可
- 格式:
import 包名.类名; *代表导入包中所有的类或接口(不包括包)- 如在一个类中使用了两个相同类名,但包名不同,则
- 选择一个使用导包的方式
- 另外一个使用全类名的方式
全类名
类的全限定名称。
静态导包
static可修饰方法、属性。(静态)
当A类需要调用B类中的大量静态成员,可以静态导包。
import static b.方法;
import static b.属性;
import static b.*;//导入所有静态成员
//用此方法 在A中使用时,前面不需要加“类名.”
不建议过多使用,可读性差,不便维护。
命令行调用
编码:javac -d ./ PackageTest.java
运行:java com.atguigu.java.PackageTest

浙公网安备 33010602011771号