程序设计的要求:“高内聚、低耦合”,高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合是仅暴露少量的方法给外部使用,尽量方便外部调用。
封装:
编程中封装的具体优点:
1.提高代码的安全性 2.提高代码的复用性 3.“高内聚”:封装细节,便于修改内部代码,提高可维护性。 4.“低耦合”:简化外部调用,便于调用者使用,便与扩展和协作。
java是通过“访问控制符”来控制哪些细节需要封装,哪些细节需要暴露。java四种“访问控制符”分别是private、protected、public、default,说明了面向对象的封装性,所以利用他们尽可能把访问权限降到最低。
1.private表示私有,只有自己类能访问
2.default表示没有修饰符修饰,只有一个包的类能访问
3.protected:表示可以被一个包的类及其他包中的子类访问
4.public表示可以被该项目中的所有包的所以类访问
封装的使用细节:
类的属性处理:1.一般使用private访问权限
2.提供相应的get/set方法来访问相关属性,这些方法都是public修饰的,以提供对属性的赋值和读写操作。(boolean变量的get方法是is开头)
测试:(普通方法一般都写public ,如sayHello方法)
多态:指的是同一个方法调用,由于对象不同可能会有不同的行为。
要点:1.多态是方法的多态,不是属性的多态。
2.多态存在的三个必要条件:继承、方法重写、父类引用指向子类对象
3.父类引用子类对象后,用该父类调用子类重写的方法,此时多态就出现了
public class TestPolym { public static void main(String[] args) { // TODO Auto-generated method stub Animal a=new Animal(); animalCry(a); //a.shout(); animalCry(new Dog()); animalCry(new Cat()); } static void animalCry(Animal a){ //用父类调用子类的方法,传的对象不一样,调用的方法也不一样 a.shout(); } /*如果没有多态 * 需要大量的重载方法 * static void animalCry(Dog d) //狗的叫 d.shout(); static void animalCry(Cat d) //猫的叫 d.shout(); * * */ } class Animal{ public void shout(){ System.out.println("叫了一声!"); } } class Dog extends Animal{ public void shout(){ System.out.println("汪汪汪!"); } } class Cat extends Animal{ public void shout(){ System.out.println("喵喵喵!"); } }
(当代码过长一个页面截取不了时,会复制代码)
对象的转型:
父类引用指向子类对象,称为向上转型,属于自动类型转换。
向上转型的父类引用变量只能调用它编译的方法,不能调用它运行类型的方法;我们需要对类型进行强制转换,称为向下转型。
编译通过,运行错误的情况,同类之间不能转型:
所有评论(0)