OOP学习过程中的一些笔记
OOP学习过程中的一些笔记
-
面向编程本质:以类的方式组织代码,以对象的方式组装(封装)数据。
-
使用new关键字创建的时候,除了分配内存空间外,还会给创建好的对象进行默认的初始化以及构造器的调用,如:
public class Student {
private String name;
private int age;
private static int Code;
private static String gender;
public static String getGender() {
return gender;
}
public String getName() {
return name;
}
public int getdateOfBirth(int date)
{
return date-age;
}
public static void main(String[] args) {
//未初始化导致报错
Student student01;
System.out.println(student01.name);
//以下代码均能输出
Student student = new Student();
System.out.println(student.name);
System.out.println(student.age);
System.out.println(Code);
System.out.println(gender);
System.out.println(student.getName());
System.out.println(getGender());
System.out.println(student.getdateOfBirth(2000));
}
}
-
类实例化(new)后会返回一个自己的对象。
-
父类的引用可以指向子类,此时调用父类和子类都拥有的方法时(非静态方法),自动调用指向的类的方法
class B { public static void test(){ System.out.println("god like"); } public void wtf(){ System.out.println("cognitive"); } } class A extends B{ private String name; public static void test(){ System.out.println("nothing to say"); } @Override public void wtf() { System.out.println("Never mind"); } } B b=new A();对象能执行哪些方法,主要依靠左边的声明类型
-
多态 是方法的多态,属性没有多态。
-
多态存在条件:继承关系,方法需要重写,父类引用指向子类对象!
Father f1=new son();
注意:static 属于类,不属于实例
final 常量,private私有
以上无法重写。
-
instance of
能否通过编译与声明类型有关(是否具有父子关系)
能否用过声明与引用类型有关(是否具有父子关系,大概?)
-
静态代码块:类创建时执行
匿名代码块:实例化后执行,比构造方法先执行,可以用来赋初值
构造方法:类实例化后执行
浙公网安备 33010602011771号