java的封装
1、属性private化,提供get、set方法来访问和设置属性
2、我们在设计类的时 方法和属性属于哪一个类就编写到那一个类,不能编写到其他类
java.lang.NullPointerException : 空指针异常
java构造器: 又叫构造方法
public 类名( ) {}
构造器绝对没有返回值 但是可以有参数
构造方法:
//handsome
public class BeautifulGril {
private String name;
private int age;
private double height;
public BeautifulGril(){
}
java在new对象的时候调用的就是构造器
//构造方法
BeautifulGril meimei1 = new BeautifulGril(“泰勒”,29,1.80);
BeautifulGril meimei2 = new BeautifulGril();
两个原则:
1、我们java文件会默认帮我们编写一个无参构造器
2、当我们需要自定义构造器的时候,我们尽量写两个
一个无参构造器,一个是我们自己要使用的有参构造器
继承: 所谓的继承本质就是代码的拷贝:通过关键字extends来实现,
package demo_extends2;
public class Animal {
private String name;
private int age;
private String sex;
public void setName(String name){
this.name = name;
}
public String getName() {
return this.name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return this.age;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getSex() {
return this.sex;
}
}
package demo_extends2;
public class Dog extends Animal{
private String pingzhong;
public void setPingzhong(String pingzhong) {
this.pingzhong = pingzhong;
}
public String getPingzhong() {
return this.pingzhong;
}
}
Animal叫父类、基类、超类
dog叫子类,派生类
java的所有类默认继承自Object类
接口:
类:大量同一类型的数据的统称就叫类
对象:类下面具体存在的一个实例
关系:类是对象的模板,对象是类的实例
多态:
一种对象有多种形态,父类对象存放子类数据,
父类引用指向指向子类对象
package demo_duotai;
import javax.swing.JFrame;
public class Test4S {
public static void main(String[] args) {
Factory f =new Factory();
Car c = new Car();
//造宝马
c = f.createBmw();
System.out.println(c.getBrand());
//造奥迪
c = f.createAudi();
System.out.println(c.getBrand());
Audi a = (Audi) c;
//造奔驰
c = f.createBenz();
System.out.println(c.getBrand());
}
}
从程序可以看出, 一个Car类型的对象c 既可以是Bmw 也可以是Benz,还可以是Audi, 这就是一个车的对象可以存放3种不同的数据,这就是多态的体现, 如果遇到特殊情况,我们需要将父类对象转换到子类对象需要强制转换,语法为
Audi a = (Audi) c;
方法的重写,所谓方法的重写,必须是有继承关系,子类觉得父类的某一个方法不好,把他的方法体进行了重新编写代码
也有叫方法的复写,方法的覆盖
public static void main(String[] args) {
Father f = new Father();
f.getMoney();
f = new Son();
f.getMoney();
f = new Son2();
f.getMoney();
}
“`