面向对象的三大特征:封装,继承,多态
封装的作用:安全
隐藏对象内部的复杂性,只对外公开简单的接口便于外界调用,从而提高系统扩展性,可维护性。
程序设计的要求:高内聚,低耦合。
成员访问权限的四种:
公开的 :可以被项目中所有类访问
受保护的:可以在同一包中所有类都可以使用,被他子类访问
default/friendly 默认的/友好的,被本身访问,同一个包访问
私有的 只能被这个类本身访问
get/set方法
private私有属性一般会提供公共的get/set方法,以便对外界,对我私有属性进行读写。
get获取属性,要有返回值(boolean 是is)
set改变属性,提供参数
继承
子类extends父类
子类继承父类,子类拥有父类的非私有属性和方法
java中只有单继承,没有c++那样的多继承,多继承会产生混乱,
子类不能继承父类的构造方法
子类在使用自己的构造方法的时候,会先去调用祖先的构造方法依次到本类为止。
多态:
重载,重写
重写:在子父类之间,子类的方法名,返回值和参数列表都一样,但是方法体不一样。
重载:在同一个类中,方法名相同,方法参数类型不同,
多态:多样化
object 对象类,他是所有java类的父类(根基类)
如果一个类没有继承任何类,这个类就继承object类
super代表父类本身,this代表当前对象本身
==和equals的区别:
==可以用来进行基本数据类型值得比较,
引用数据类型==比较的是内存地址是否相等
equals用来比较两个对象的内容是否相等。
/**
* 汽车类
* @author Gramer
*
*/
public class Car {
String chexing;
String chepai;
public Car(){
}
public void start(){
System.out.println("我是车,我启动");
}
public void Stop(){
System.out.println("我是车,我停止");
}
}
/**
* 出租车类
* @author Gramer
*
*/
public class Taxi extends Car{
String qcgs;
public Taxi(){
}
public void customer(){
System.out.println("乘客你好");
System.out.println("我是景顺出租车公司的,我的车牌号是京B123,你要去哪里");
System.out.println("目的地已经到了,请您付费下车,欢迎再次乘坐");
}
}
/**
* 家用轿车
* @author Gramer
*
*/
public class FamilyCar extends Car{
String name;
public FamilyCar(){
}
public void outing(){
System.out.println(“我是武大郎,我的汽车我做主 “);
System.out.println(“目的地到了,我们去玩吧”);
}
}
public class Cartest {
public static void main(String []args){
Taxi a = new Taxi();
FamilyCar b = new FamilyCar();
a.start();
a.Stop();
b.outing();
a.customer();
}
}