简单的封装基本格式:
1.将成员方法及成员变量声明为私有(private).
2.再在类中声明一个公有方法以设置或者获取私有变量和方法.
例子:
class example
{
private int age;
public int getAge
{
return this.age;
}`
public void setAge(int age)
{
if(age < 0)
System.out.println("年龄不能为负数!");
else
this.age = age;
}
}
为什么要封装?
封装是为了保护数据安全,以上面的例子为例.众所周知年龄不能为负数,如果不将其私有,那么它将可以被任意改变.反之,私有之后外部若想改变其值就必须要通过类里面自定义的方法来实现,在这个方法中就可以为age这个数据获取时添加限制条件.当年龄为负数的时候则不能给age赋值.
继承的概念:
两个类,当用户声明一个为父类,一个为子类时.子类拥有所有父类的非私有成员变量/成员方法.
为什么要继承?
继承可以提高类的复用性,减少冗余代码,提高程序可读性.
继承的基本格式:
class Father
{
String name;
}
class Son extends Father
{
}
//此时,son类就会拥有Father类中的成员变量--name;
继承中可能出现的问题
1.当子类中存在成员变量名和父类成员变量名相同时时,按就近原则处理(就是,哪个近用哪个,成员方法同理).当成员方法名相同时也称为重写(名字,参数,返回值必须一样,权限修饰符必须大于等于父类).
2.一个子类只能有一个父类,一个父类却可以有多个子类.
3.允许多重继承:父类的父类的成员变量/方法依然可以被当前子类继承(如有必要,不仅仅局限两重,理论上可无限继承)
4.this关键字可调用当前类中的成员变量或方法;
5.super关键字可调用当前类的父类中的成员变量或方法;
单例设计模式基本步骤:
将类中构造函数私有化;
静态new一个当前类;
公开一个方法以获取第二步中的类;
例子:
class Single
{
private Single(){}
private static Single s = new Single();
public static Single getSingle(){
return s;
}
}
为什么要用单例设计模式
单例设计模式相当于将一个类的成员变量/方法共享出去,但是该类真正的对象却只有一个;就像教室里的一块黑板一样,教室里的所有人都可以对黑板进行内容修改.里面的内容全教师人共享(相同).但是黑板却只有一块,对应对象只有一个!