封装
概述:
java中对属性或行为的细节进行隐藏的行为,就叫做封装。封装可以理解 为是一种思想。
好处: 提升代码的安全性,提升代码的复用性,提升代码的维护性。
原则: 1、对属性细节和行为进行隐藏 2、对外提供公共的访问方式【使用方法提供】。
private
概述:
关键字,含义私有的意思,他一般是封装中封装的比较彻底的方式语句。 起到封装的效果。
修饰内容:
属性【成员变量】
行为【成员方法】
构造方法 内部类
修饰效果: 只能在本类中使用
代码示例:
public class Person {
private String name; // 封装后 name只能在本类中使用
private int age;
private void work() {
System.out.println("类的work方法");
}
// 对外提供的访问方式 name 和 age
public void show() {
System.out.println("name =" + name + ",age = " + age);
}
// 提供一个可以访问work方法的方式
public void useWork() {
work();
}
}
测试类:
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person();
//使用对象的属性值
// System.out.println(p1.name);// 不能访问
// System.out.println(p1.age);// 不能访问
p1.show();
// 使用对象调用类的方法
// p1.work();
p1.useWork();
}
}
getter 和 setter方法
概述:
就是属性封装后对外提供的获取和修改对应属性值的访问方式。
getter方法:获取对应属性的属性值。
格式:getXxx();
Xxx :属性名首字母大写。
setter方法:对的对应属性值进行修改。
格式:setXxx();
Xxx :属性名首字母大写。
代码示例:
public class TestPerson {
public static void main(String[] args) {
Person p1 = new Person();
//使用对象的属性值
// System.out.println(p1.name);// 不能访问
// System.out.println(p1.age);// 不能访问
p1.show();
// 使用对象调用类的方法
// p1.work();
p1.useWork();
// 获取p1对象的name的值
System.out.println(p1.getName());// null
System.out.println(p1.getAge());// 0
// 修改属性值
p1.setName("波多野结衣");
p1.setAge(66);
System.out.println(p1.getName());// 波多野结衣
System.out.println(p1.getAge());// 66
Person p2 = new Person("喆喆", 30);
System.out.println(p2.getName());// 喆喆
System.out.println(p2.getAge());// 30
}
}
创建对象属性赋值的内存理解
创建对象时对象的属性赋值三个阶段:
1、默认赋值 成员变量只有声明
比如 :int age ;
2、显性赋值:成员变是创建的
比如 : int age = 18;
3、构造赋值:通过有参构造创建对象的时候赋值 。
比如: new Person(“喆喆”,30)。
内存过程图: