标签:
封装的目的是为了提高程序的安全性。封装就是把不想让第三者看的属性,方法隐藏起来。
封装的实现方法是: 1.修改属性的可见性,限制访问。
2.设置属性的读取方法。
3.在读取属性的方法中,添加堆属性读取的限制。
package com.chen.test; public class Test9 { private int age; // 定义年龄 private String name; // 定义姓名 private double price; // 定义价格 //用get/set方法对属性进行封装 public int getAge() { return age; } //在传入年龄时,设置了年龄的限制 public void setAge(int age) { if (age > 100 || age < 0) { this.age = 18; } this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; }
}
private : 只能被类自身调用
public : 1. 可以被类自身中的方法调用。 2. 可以在子类中直接调用父类的public属性和方法。3. 可以被对象直接调用。
protected: 1.可以被类自身的方法调用。 2.可以在子类直接调用父类的protected属性和方法。
默认关键字: 1. 可以在子类直接调用父类的默认关键字修饰的属性和方法。 2. 可以被本包的对象直接调用。
关键字的比较,从三个角度去对比:子类,包内,包外。
protected关键字的设计的初衷就是为了子类调用父类的属性和方法设计的。
默认关键字设计的初衷是为了包内可以调用,包外不可以调用。
JAVA的继承是 单线继承,不允许多重继承;
子类可以继承父类的哪些方法和属性:
1.父类的private属性和方法,无法继承
2.父类的protected属性和方法,都可以继承
3.父类的public属性和方法,都可以继承
4.父类的默认关键字修饰的属性和方法,如果子类和父类在一个包里,则可以继承
抽象类与抽象方法:
不能够被实例化的class,用abstract进行修饰,这就是抽象类。
抽象类中可以写抽象方法、还可以写非抽象方法----------------非抽象类中不能定义抽象方法;
抽象类中定义的抽象,必须要在子类中被重写------子类必须重写父类的抽象方法(除非子类也是抽象类)
抽象方法的作用?
子类必须重写父类的抽象方法,可以实现多态;
final关键字的总结:
1. final修饰变量 ----- 给变量一次初始化的机会,以后就不能再修改
public final double dburl;
final修饰引用型变量 -------------------锁定了引用的地址,不能再发生变化;
final Dog dog = new Dog("欢欢");
dog = null;
2. final修饰class ----- 这个class不能被子类继承
public final class Dog extends Pet{}
3. final修饰方法 ------ 表示这个方法不能被子类重写
public final void swim(Pool pool) {}
重写:override
子类有一个与父类,同名、同参、同返回值的方法,那么就说子类的这个方法重写了父类的同名方法;
重写了什么?
方法的本质------>>> 是函数指针
重写的本质就是:用子类内存区中方法的首地址,替换父类内存区中同名方法的首地址
接口与抽象类的对比
1. 接口是能力的表示
抽象类是Class,它有属性和行为
2. 接口里可以定义常量,但是没有属性
3. 接口中的方法,都是public abstract (共有的抽象方法,不能定义其它类型的方法)
4. 抽象类中的方法,可以是抽象的,也可以是非抽象的。但是接口中必须是抽象的;
标签:
原文地址:http://www.cnblogs.com/crshuai/p/5774268.html