面向对象涉及的笔记
以下为在学习面向对象时候所整理的笔记,对各位的帮助可能不大,主要是我个人私用。
-
面向对象的思维,(定义),以及与面向过程的区别
-
认识什么是方法。方法的格式
//属性 返回类型 方法名
public String hi(){
return "Hello World!"
}
//注意,break与return的区别
-
静态方法与非静态方法 strating
-
实参与形参
-
类与对象的关系:类的一个具体实例
-
构造器:无参构造与有参构造。
new的本质是调用构造器;
定义有参时,要显示定义无参构造;
构造器用来定义初始值
-
面向对象的三大特性:封装、继承、多态
-
封装:高内聚,低耦合。get/set/;priviat
-
继承: A extands B(A继承B),JAVA是单继承,没有多继承;
继承是类之间的一种关系,除此以外,还有依赖,组合,聚合;
object是所有类的父类。
this、super的不同。
- super(); 调用父类的构造器,子类默认使用父类的无参构造。只有在继承关系才可以使用
-
-
- 引用静态与非静态的方法会有不一样的结果。当引用静态static的时候,new对象指向的是左边。非静态的时候则相反。
- 重写:子类重写父类方法。重写参数列表必须相同。静态方法不可重写,(静态属于类,不属于实例)。final常量也不可以
- 多态:
- 父类的引用指向子类:A a =new B();
- 多态存在的条件(多态是方法的,属性没有多态)
- 有继承关系
- 子类重写父类的方法
- 父类引用指向子类对象
-
-
instanceof X instanceof Y
-
当new一个父类的对象,想引用子类的方法时(Person obj = new Student student时),需要类型之间的转换。 低转高是没问题的,高转低就需要强制转换**(Student)stduent;** (原先student是Person类,为Student的父类,但是子类转换父类,低转高有可能会导致有些方法是用不了)。
-
静态变量可以被类调用,但是非静态变量,只能被对象调用
-
static代码块只执行一次,还有匿名代码块,和构造方法。static{ } 、 { }
-
被final修饰的类,不可以被继承,但是该类的属性中可以含有final常量。
-
abstract:抽象类,只搭建方法的框架,就可以使用abstract修饰该方法。但是不能new该类为对象,相当于一个“约束”。
且该抽象方法,必须声明为 抽象类abstract。
-
接口interface:可以多继承。只有规范。
- 使用interface定义,使用implements继承
- 在接口interface中,属性默认定义为静态常量 public static final—;方法定义为抽象公共类 public abstract–
- 接口不能被实例化,接口中没有构造方法。
- interfance可以实现多个接口,但是必须重写imperments的方法
-
内部类:
- 可以通过new内部类,进而调用内部类所在类的私有属性new Outer.Inter
- 一个Java文件,中可以有多个class类,但是只能有一个public class类
- 匿名内部类
-