今天说说封装
首先咱们搞清楚什么叫封装,继续理解字面意思 就是封锁包装的意思呀。
我们既然把现实的物体以抽象的概念转换成代码,那么就产生了一个问题,物体是有局限性的,比如一个足球,它的组成有皮革与内胆,因为这是一个整体 所以我们不能把球胆或皮革单拿出来用 ,那么我们的抽象出的类是不是也要有个限定?类中的元素是不是也要一个呢? 当然要,所以我们有了public ,priveate ,protected,缺省。
如果不用修饰符
class Leather{
void show(){
System.out.println("皮革");
}
}
class Bladder {
void show(){
System.out.println("内胆");
}
}
public class Football {
Bladder bladder=new Bladder();//内胆
Leather leather=new Leather();//皮革
}
public class test {
public static void main(String[] args) {
Football football=new Football();
football.bladder.show();
football.leather.show();
}
}
很不幸我们的内胆和皮革可以在任何地方被使用,这不是我们想要的。所以Football类应该这么写
public class Football {
private Bladder bladder=new Bladder();//内胆
private Leather leather=new Leather();//皮革
}
访问修饰符最大的意义不在于阻隔访问,而应该是体现类的独立性,使我们书写的类看上去更像一个独立的个体而不是一堆代码。
首先咱们搞清楚什么叫封装,继续理解字面意思 就是封锁包装的意思呀。
我们既然把现实的物体以抽象的概念转换成代码,那么就产生了一个问题,物体是有局限性的,比如一个足球,它的组成有皮革与内胆,因为这是一个整体 所以我们不能把球胆或皮革单拿出来用 ,那么我们的抽象出的类是不是也要有个限定?类中的元素是不是也要一个呢? 当然要,所以我们有了public ,priveate ,protected,缺省。
如果不用修饰符
class Leather{
void show(){
System.out.println("皮革");
}
}
class Bladder {
void show(){
System.out.println("内胆");
}
}
public class Football {
Bladder bladder=new Bladder();//内胆
Leather leather=new Leather();//皮革
}
public class test {
public static void main(String[] args) {
Football football=new Football();
football.bladder.show();
football.leather.show();
}
}
很不幸我们的内胆和皮革可以在任何地方被使用,这不是我们想要的。所以Football类应该这么写
public class Football {
private Bladder bladder=new Bladder();//内胆
private Leather leather=new Leather();//皮革
}
访问修饰符最大的意义不在于阻隔访问,而应该是体现类的独立性,使我们书写的类看上去更像一个独立的个体而不是一堆代码。