6.对象内存图
1.理解对象的创建语句的意义
创建对象的语法固定为(以学生类为例子):
Student student = new Student();
Student student = new Student();
//Student student 有什么用,创建一个对象的引用
//new 去内存中开辟空间,初始化对象
//Studnet()构造器,给对象的属性赋初值
如下图内存所示:
2.对象内存图解
- 学生类Student
public class Student {
private int ID;
private String name;
public void study(){
System.out.println(this.name+"正在专心学习");
}
}
- 测试类Test,包含main()方法
public class Test {
public static void main(String[] args) {
Student student1 = new Student();
System.out.println(student1.name);
student1.name = "李华";
System.out.println(student1.name);
student1.study();
}
}
7.封装
就像插板一样,把内部的结构封装起来,你不用关心它是怎么实现的,只需要在用它的时候使用它的接口
java中的封装
1.代码封装,方法
2.属性封装,抽象到类中
有什么用?
1.隐藏了细节,仅暴露对外访问部分提高了代码的安全性
2.将共同的事物提取出来,提高了代码的复用性
java三大特性之一,当你遇到某个问题的时候,只需要去找解决这个问题的工具(找对象,调用方法)
使用步骤:
1.使用
private
关键字来修饰成员变量。2.使用
public
来修饰setter和getter特然方法
将属性私有化,使得外部不能直接访问,只能通过定义的settet和getter来访问属性
代码:
Student类,包含ID、name、sex三个私有属性
public class Student {
private int ID;
private String name;
private char sex;
public int getID() {
return ID;
}
public void setID(int ID) {
this.ID = ID;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
}
测试类:
public class Test {
public static void main(String[] args) {
Student student = new Student();
//student.name; 不能直接这样访问属性会报错,必须通过方法设置和得到属性值
System.out.println(student.getName());
student.setName("李华");
System.out.println(student.getName());
}
}