高内聚,就是类的内部数据操作细节自己来完成,不允许外部干涉
低耦合,进暴露少量的方法给外部使用
通常,应该禁止直接访问一个对象中数据的实际表示,而通过操作接口来访问,这成为信息隐藏
意义
提高程序的安全性,保护数据
隐藏代码的实现细节。当然我们开发人员是上帝视角,肯定知道
统一接口,所有对外提供的方法都是get / set,形成了规范
提高了系统的可维护性
//测试类 package com.hxia.base.Demo_oop; public class Student2 { private String name ; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { if (age >0 || age < 110 || age ==110){ this.age = age; }else if (age > 110){ this.age = age; System.out.println("寿星"); }else { this.age = 3; } } } //设置快捷键 Alt + Ins
package com.hxia.base.Demo_oop; //一个项目应该只存在一个main方法 public class Application { //Application应用 public static void main(String[] args) { // Student student1 = new Student();//括号不能漏掉 // Student student2 = new Student();//括号不能漏掉 // student1.name = "lee"; // student2.name = "zhang"; // student1.age = 21; // student2.age = 22; // student1.study(); // student2.study(); // Student1 student1 = new Student1("lee",18);//实例化对象时,自动调构造方法 // student1.study(); Student2 student2 = new Student2(); student2.setName("LEE"); student2.setAge(18); String name = student2.getName(); final int AGE = student2.getAge(); //返回一个常量被AGE接收 System.out.println(name+"不断努力学习,一直努力学习,坚持努力学习"); System.out.println("终于"+AGE+"岁的"+name+"如愿以偿的实现了自己的理想"); } } //--------------------------------------------------------------------------- /* 变量本来就是引用的涵义 a=10,a引用10,a在栈中,10在堆中,a全权代表10来出席活动,相当于替身吧 =========================================================================== 内存理解: 字节码文件(编译后的文件)先在方法区,它所占的内存空间可以认为固定不变的 栈放变量名(引用变量名指向真实的类对象【类就是一个模板】等等)和main()函数变量,理解为药引子 堆放对象(万物皆对象:属性,方法-->调用的方法,数组) 方法区 -->堆 -->栈: 字节码 -->具体对象(静态属性即可变成成员变量、方法本身&包含main方法、数组本身等)-->引用变量(普通变量、函数名型变量、基本数据类型变量) Pet p = new Pet()中p是引用变量,new Pet()才是具体对象 属性也是放在堆中,因为它一般是要通过来对象(也可用类对象的引用变量)来调用的 注意:静态方法是和类一起加载的,所以可以直接通过类模板调用(不用new) 引用类型与基本类型: 引用类型即对象是通过引用来运行的 */
只要记住这几个字就ok了: 属性私有、get/set