栈里是一些方法和变量的引用
堆存放创建出来的对象
堆里包含方法区
引用就是指向地址
修饰符 属性类型 属性名 = 属性值
默认初始化:
数字:0、0.0
char:u0000
boolean:false
引用类型(八大基本类型之外的):null
类:静态的属性(属性)、动态的行为(方法)
设计程序时,追求高内聚、低耦合
高内聚:类的内部数据操作细节自己完成,不允许外部干涉
低耦合:仅暴露少量的方法给外部使用
封装(数据的隐藏):属性私有,get/set
禁止直接访问一个对象中数据的实际表示,需通过操作接口来访问
内部的封装可以使程序更安全,比如可以在 set 方法里加判断条件
属性设置 private 私有
getName()、setName() 都是 public 公共
可以直接输入 getName()、setName(),idea 会直接显示方法
也可以按 alt + insert,选择 Getter and Setter,自动生成 get/set 方法
注意在 main 方法里要赋值的时候用 setName()
要打印的时候用 getName()
代码如下:
public class Pet {
//属性私有
private String name;
private int age;
//get 获得这个数据
public String getName() {
return name;
}
public int getAge() {
return age;
}
//set 给这个数据设置值
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
if(age>120||age<0){
this.age = 1;
} else{
this.age = age;
}
}
}
public class Application {
public static void main(String[] args) {
Pet pet = new Pet();
//set 设值
pet.setName("hh");
pet.setAge(-1);
//get 获取
System.out.println(pet.getName());
System.out.println(pet.getAge());
}
}
运行结果如下:
封装优势:
1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.系统可维护性增加