一、属性:也叫成员变量,也叫实例变量
成员变量 & 局部变量 的区别?
①作用域不同
②内存中的位置不同
③成员变量有默认值,而局部变量没有默认值(局部变量使用前必须赋初始值)
成员变量的默认值:
基本数据类型:
byte short int —> 0
long —> 0L
float —> 0.0F
double —> 0.0D
char —> ‘\u0000’
boolean —> false
引用数据类型: —> null
|– 类(class)
|– 接口(interface)
|– 数组([])
2.为属性赋初始化值的方式
①使用默认值
②直接显示赋值
二、参数的值传递:
基本数据类型: 将基本数据类型作为参数,传递给方法,方法运行结束后,原值不会发生改变
引用数据类型: 将引用数据类型作为参数,传递给方法,方法运行结束后,原值会发生改变
内存管理:
分配: JVM自动为其分配内存空间
释放:JVM通过垃圾回收机制自动的释放内存空间
垃圾回收机制: 将内存中的垃圾对象释放
垃圾对象:不再被任何引用指向的对象
Person p = new Person();
p = null;
//通知垃圾回收机制可以释放内存,但是并不能保证立即释放,加快释放。
System.gc();
三、面向对象的封装性
封装的理解: 该隐藏的隐藏起来,该暴露的暴露出来
访问控制修饰符:
public : 公共的,可用于修饰属性、方法、类。 在任何地方都可以访问
private : 私有的,可用于修饰属性、方法。 只能在本类中访问
封装的步骤:
①属性私有化(private)
②提供公共的(public) get/set 方法
class Animal{
//1.
private String name;
private int legs; //描述腿的个数
//2.
public void setName(String n){
name = n;
}
public String getName(){
return name;
}
public ovid setLegs(int l){
if(l > 0 && l <= 4){
legs = l;
}
}
public int getLegs(){
return legs;
}
}
Animal ani = new Animal();
ani.name = "大象";
ani.legs = -1000;
四、this 关键字:
使用在本类中,代表当前对象。可以用于调用属性、方法、构造器
this.属性
this.方法
this(……):
①this调用本类构造器,必须写在构造器中可执行代码的首行
②若一个类中有多个构造器,至少有一个构造器中不使用this (避免递归构造器调用)
谁让拥有this关键字的方法运行,谁就是当前对象
class Person{
private String name;
private int age;
public void setName(String name){
this.name = name;//可以区分局部变量和成员变量
}
}
Person p = new Person();
p.setName("张三");