面向对象语言的三大特征
-
封装
-
继承
-
多态
面向对象语言中的封装: 指的是通过访问权限修饰符,使得类中的信息是否对外可见(隐藏类中的信息)
封装的好处:
-
只能通过规定方法访问
-
隐藏类的实现细节
-
方便加入控制语句
-
方便修改实现
package day2;
public class Person {
//封装使用案例 使用private这个权限修饰符对成员变量进行修饰,在其他类中访问不到了
private String name;
private int age;
/*为封装起来的成员变量,提供一个特定的公共权限的方法,用来为其赋值,方便我们自己加入一些控制语句
name属性赋值。这样主动权在于我们自己,别的类直接访问成员方法,不用访问成员变量
*/
public void setName(String name){
if(name!=null&&name.length()<10){
this.name = name;
}
}
//获取name属性值
public String getName(){
return this.name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return this.age;
}
}
package day2;
public class TestPerson1{
public static void main(String[] args) {
Person zs = new Person();
zs.setName("zs");
System.out.println(zs.getName());
}
}
单类设计模式:解决只让一个类在一个进程中创建一个唯一的对象
package day2;
public class Person {
//封装使用案例 使用private这个权限修饰符对成员变量进行修饰,在其他类中访问不到了
private String name;
private int age;
private static Person person=null;
//把构造方法设置私有权限
private Person(){
}
public static Person createPerson(){
if(person==null){
person = new Person();
}
return person;
}
}
package day2;
public class TestPerson2{
public static void main(String[] args) {
Person zs1 = Person.createPerson;
Person zs2 = Person.createPerson;//此时person不为空
System.out.println(zs1);
System.out.println(zs2);//输出和上面的一样
}
}