java封装特性
作者:互联网
封装---面向对象三大特征性
该露的露,该藏的藏
-
高内聚,就是类的内部数据操作细节自己来完成,不允许外部干涉
-
低耦合,进暴露少量的方法给外部使用
封装de 定义和意义
-
通常,应该禁止直接访问一个对象中数据的实际表示,而通过操作接口来访问,这成为信息隐藏
-
意义
-
提高程序的安全性,保护数据
-
隐藏代码的实现细节。当然我们开发人员是上帝视角,肯定知道
-
统一接口,所有对外提供的方法都是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
标签:封装,name,student2,age,特性,new,java,student1,public 来源: https://www.cnblogs.com/Hxia/p/14934188.html