1.描述一个类如描述一个杯子?,
需要描述什么,宽,高,形状,颜色等除此之外,还需要描述什么?这个杯子能做什么:盛水,倒水那么对于一个类来说 宽,高,形状便是他的属性-即身上具有的性质,对比于Java类中的属性即成员变量,常量,而盛水,倒水便是它能做的事情,即方法类并不实际存在,类只是一个模糊的概念,抽象,它是定义一类事物的一个规范
2.对象是实际存在的个体对比类和对象最鲜活的例子便是 人和某一个同学人即是对某一类事物的一个定义,而某一个同学即是人这一个定义的实体
3.关键字:继承 extends this的调用extends继承子类继承父类两个权限修饰符 public private相当于找了一个干爹,我没有的东西干爹有(包括属性和方法),那就直接拿过来用,但是有些东西干爹不愿意给你public class Father { int a=1; private int b=1; void prin() { System.out.println("father"); }}class Son extends Father{ public static void main(String[] args) { Son s=new Son(); s.prin(); System.out.println(s.a); System.out.println(s.b);//报错 }}this返回当前对象 int i=0; Test (int i){ this.i=i; //? this.add();} Test add() { i++; return this; //? } public void prin(){ System.out.println(i); } public static void main(String[] args) { Test t=new Test(5); t.add().add().prin(); }输出8分析一个程序从main方法开始逐步向下,未学线程,程序逐条运行,只有一条路线t.add();方法执行完毕 t.add()这个方法变为了t这个对象 t.add()=t;
----------------------------------------------------------------4.super关键字
public class Test { void f() { System.out.println("father");}}class Son extends Test{ void f() { super.f(); System.out.println("son");}}如果不加super.f();则子类方法完全覆盖父类方法只输出son如果加上super.f();则依旧调用父类的f方法,输出father和son如果子类中没有重写父类中的某个方法,但子类新建对象调用方法,则默认调用父类的该方法5.构造方法子类的构造过程中必须调用其父类的构造方法,若无显式调用,则隐式调用无参构造函数(若父类不写构造方法,则默认生成一个无参构造方法,里面为空)子类只能在自己的构造方法中使用super(argument_list)调用基类的构造方法如果子类的构造方法没有显式的调用父类构造方法,则默认调用基类无参构造方法如果子类的构造方法中既没有显式调用基类构造方法,而基类中又没有无参的构造方法,则编译出错构造方法调用super必须在第一行public class Test { Test(){ System.out.println("test1"); } Test(int r){ System.out.println("test2"); }public class Son extends Test{ int b=0; Son(){ }}
网友评论