1、类分为3种:普通类;抽象类;接口
普通类:1)方法只能有普通方法和构造方法
2)能创建对象
public class UnStudent{
//创建对象,构建对象时候自动调用
public UnStudent(){}
//普通方法
public void study(){}
}
抽象类:1)方法可以有普通方法、构造方法和抽象方法
2)不能创建对象
public abstract class Student{
//普通方法
public void study(){}
//抽象方法
public abstract void play();
}
接口: 1)方法只能有抽象方法
2)不能创建对象
public interface people{
//抽象方法
public abstract void play();
}
2、继承 父类和子类
作用:避免代码的冗余
继承: 子类通过继承关系获取父类的所有非私有权限的属性和方法
单继承关系
关键字:extends、implements
普通类继承普通类 extends
普通类继承抽象 extends 必须同时重写抽象类中的所有抽象方法
普通类继承接口 implements 必须同时重写抽象类中的所有抽象方法 可以同时继承(实现)多个
抽象类继承接口 可以不用同时重写所有接口抽象方法 可以同时继承多个
类接口抽象类体现模型:程序员(动手不动口)->小组长(动口也动手)->项目经理(动口不动手)
父类:
public class People {
public void study(){
System.out.println("人类在学习");
}
public void play(){
System.out.println("人类在玩");
}
}
子类
public class Student extends People{
public void study() {
System.out.println("学生在认真的学习");
}
}
Main 函数中出现的多态和自动转型
public class Test {
public static void main(String[] args) {
People peo = new Student();//自动转型,Student 是Peoplede 的子类,自动转换为People
Student stu = new Student();
People peo1 = new People();
peo.study();
stu.study();
peo1.study();//1、2句结果相同,表现出多态性
//类名 对象名 = new 类名();
}
}
今天重点在于区分3种类的定义及使用方法、相互继承的关系
1.构造函数:
访问权限 类名(){}
作用:用来构造对象
特征:创建对象时候执行
构造器有返回值,返回的是对象在内存中的地址
public int x1,y1,x2,y2;
public Graphics g1;
public DrawListener(){
}//这就是一个构造函数
public DrawListener(Graphics g2){g1 = g2;
}//这是另一个构造函数,如删除上一个,则替换默认构造函数
}
2.方法重载
方法重载:1.在一个类中,
2.方法名相同
3.参数类型、参数个数、参数顺序不一样的方法互为重载方法
构造方法重载:如果重载了构造函数,则类中默认的构造函数没有了,如果还需要用到无参的,则必须显性定义在类中
参照上“例”。
3.界面代码重构重写
引用传递,构造方法传参数
this代表一个对象,当前类的对象
this 关键字是类内部当中对自己的一个引用,方便访问类中方法和自己的属性
public class DrawBoard extends JFrame{
//DrawBoard继承了JFrame 无需再重新创建: JFrame jf = new JFrame();
public static void main(String[] args) {
DrawBoard db = new DrawBoard();
db.initFrame();
}
public void initFrame(){
//initFrame 被db引用
this.setSize(600, 600); //this 替换
setDefaultCloseOperation(3);
setVisible(true);
}