面向对象
什么是面向对象
抽象理解为将一类共有属性(方法)提取出来的一个集合

非静态方法调用
public的非静态方法,要new一个对象,
静态方法static是与类仪器加载,时间早于其他方法

类与对象的关系
类是一种抽象的数据类型,并不代表某一具体事物,对象是抽象概念的具体实例,所以用选用某个类型,然后new一个对象 Student student = new Student();

创建与初始化对象
1 package duixiang; 2 //学生类 3 public class Student { 4 //属性:字段 5 String name; 6 int age; 7 //方法,this代表当前类 8 public void study(){ 9 System.out.println(this.name+"学生在学习"); 10 } 12 }
package duixiang; //一个项目应该只存在一个main方法 public class Application { public static void main(String[] args) { //类是抽象的需要实例 //xiaoming是Student类的实例 Student xiaoming = new Student(); xiaoming.age=3; System.out.println(xiaoming.age); } }
有参无参构造器
public class Person { //一个类即使什么都不写,也会存在一个构造器方法 /** * public Person(){} * 没有返回值(没有void),名字与类相同 * 无参构造器,会初始化一些初始值 * */ String name; //使用new的时候,本质是在调用构造器 public Person(){ this.name="李华"; } //一旦定义了有参构造,必须显式定义无参构造 public Person(String name){ } }public class Person { //一个类即使什么都不写,也会存在一个构造器方法 /** * public Person(){} * 没有返回值(没有void),名字与类相同 * 无参构造器,会初始化一些初始值 * */ String name; //使用new的时候,本质是在调用构造器 public Person(){ this.name="李华"; } //一旦定义了有参构造,必须显式定义无参构造 public Person(String name){ } }
构造器特点:
1.和类名相同。
2.没有返回值。
3.new本质是调用构造器
4.初始化一些值
注意点:定义了有参构造器必须把无参构造器写出来
Alt+Insert生成构造器

封装
属性私有 get/set

继承

super
属性

方法 不写默认是本类与this一样,super代指父类

私有的无法被继承

重写
静态方法演示(不是重写)
父类的引用指向了子类

非静态方法演示
注意输出区别,方法重写

注意点:需要有继承关系,子类重写父类的方法。方法名必须相同,参数列表也相同,修饰符范围可以扩大,不能缩小。抛出的异常可以被缩小,不能被扩大。(方法必须一致,方法体不同 override)
多态

能执行哪些方法取决于左边

向上转型,低转高自动可以转,向下转型高转低需要强转(可能会失去一些方法)
抽象类

接口

接口定义方法,implements实现方法

重写接口

浙公网安备 33010602011771号