以下为在学习面向对象时候所整理的笔记,对各位的帮助可能不大,主要是我个人私用。
面向对象的思维,(定义),以及与面向过程的区别
认识什么是方法。方法的格式
//属性 返回类型 方法名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类匿名内部类