java面向对象学习笔记

一、知识点
1.什么是类:
类是一个概念名词抽象的定义,简单说就是分类。
类定义了该类型对象的数据结构,称之为“成员变量”,同时,也定义了
一些可以被调用的功能,称之为方法
类是用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构
由定义它的类来决定。
类的定义:
class 类名{
成员变量类型 变量名称;
}
class Point{
int x;
int y;
}
2.对象的创建
当一个类的定义存在后,可以使用new 运算创建该类的对象,对象创建的过程
一般称为类的实例化
new 类名();
3.引用类型
用类名(接口、数组)声明的变量称为引用类型变量,简称"引用"
Point p = new Point();
 引用类型变量中存储的是对象在内存中的地址信息。引用的功能在于访问对象
4.方法重载
允许多个方法的名称相同,但参数列表不同,称之为方法的重载overload
编译器在编译时会根据其参数的不同,绑定到不同的方法
5.构造方法
可以通过构造方法实现对象成员变量的初始化
构造方法的名称必须与类名同名,构造方法没有返回仁,也不能写成void
6.继承
extends关键字可以实现类的继承
子类可以继承父类的成员变量及成员方法,同时也可以定义自己的成员变量和方法
Java不支持多重继承,一个类只能继承一个父类,但一个父类可以有多个子类
子类的构造方法中必须通过super关键字调用父类的构造方法
7.方法的重写(Overwrite)
子类可以重写继承自父类的方法,即方法名和参数列表与父类的方法相同,
8.static关键字
1)修饰成员变量
用static修饰的成员变量不属于对象的数据结构
static 变量是属于类的变量,通常可以通过类名来引用static成员
static成员变量和类的信息一起存储在方法区中,而不是在堆中
一个类的static成员变量只有一份无论该类创建了多少对象
2)修饰方法
static修饰的方法不需要针对对象进行操作,其运行结果仅仅与输入的
参数有关,调用时直接用类名引用
9.final关键字
修饰类:final修饰的类不可以被继承
修饰方法:final修饰的方法不可以被重写
修饰成员变量:final修饰成员变量,该成员变量需在初始化时赋值
一旦创建不可改变
10.抽象类
用abstract关键字修饰的类称为抽象类,抽象类不能实例化,抽象类的意义在于
被继承。
一个类继承抽象类必须实现其抽象方法(除非该类也声明为抽象类)
11.接口
接口可以看成是特殊的抽象类,只包含有抽象方法的抽象类
接口间可以存在继承关系,一个接口可以通过extends关键字继承另一个接口
子接口继承了父接口中定义的所有方法
12.内部类
一个类可以定义在另外一个类的内部,定义在类内部的类称之为Inner,其所在的类
称之为Outer
内部类一般情况下对外不可见,除了包含它的外部类外,其它类无法访问到它
内部类可以很方便的访问其外部类的私有属性
匿名内部类:如果在程序中需要创建一个类的对象(通常这个类需要实现接口或者继承类)
而且对象创建后,这个类的价值就不存在了,这个类可以不必命名,称之为匿名内部类
匿名内部类应用在接口回调、事件监听场合
二、练习
1.什么是类
类是一个概念抽象的定义
类定义了该类型对象的数据结构,称之为"成员变量",定义了一些可以被调用的功能
称之为"方法'
类用于构建对象的模板,对象的实质就是内存中一块存储区域,其数据结构由定义
它的类来决定
2.简述JVM内存结构堆、栈和方法区分别存储的内容
JVM会在其内存空间开辟一个称为"堆"的存储空间,这部分空间用于存储使用new关键字创建的对象
栈用于存储程序运行过程当中所有的局部变量
方法区:该空间用于存储类的信息
3.什么是方法的重载overload
允许多个方法的名称相同,但参数列表不同,称之为方法的重载
编译器在编译时会根据其参数的不同,绑定到不同的方法
4.对null的理解
引用类型变量用于存放对象的地址,可以给引用类型赋值为null,表示不指向任何对象
5.什么是构造方法
通过构造方法实现对对象成员变量的初始化,构造方法是在类中定义的方法,名称必须
与类名同名,没有返回值,也不能写void
6.什么是方法重写overwrite
子类可以重写继承自父类的方法,即方法名和参数列表与父类的方法相同,但方法实现不同
7.重写和重载的区别
重载遵循"编译期绑定"在编译时根据参数变量的类型判断应该调用哪个方法
重写遵循"运行期绑定"在运行的时候根据引用变量指向的实际对象类型调用方法
8.关键字final可以修饰一个类,一个方法,一个变量,各起什么作用
final修饰类是不能被继承
final修饰方法不能在子类中被覆盖
final修饰变量,称为常量,初始化以后不能改变值
9.什么是对象数组
对象数组,是对象的元素不是基本类型,而是引用类型
10.什么是抽象类
用abstract关键字修饰的类称为抽象类,抽象类不能实例化,抽象类的意义在于
被继承,抽象类为其子类抽象出了公共的部分,定义了子类所必须实现的抽象方法
11.abstract class和interface有什么区别
 1)从语法角度
 abstract class方法中可以有自己的数据成员,也可以有非abstract的成员方法
 而在interface方法中一般不定义成员数据变量,所有的方法都是abstract,方法不能
 拥有默认的行为
 2)从编程角度
 abstract class在java语言中表示的是一种继承关系,一个类只能使用一次继承关系,
 一个类可以实现多个interface
 12.接口是否可继承接口?
 接口是可以继承接口的并且可以继承多个其它接口
 13.抽象类是否可实现接口?
 抽象类可以实现接口中的方法
 14.抽象类是否可以继承实体类?
 抽象类可以继承实体类
 15.匿名内部类是否可以继承其它类,是否可以实现接口
 匿名内部类是可以继承其它类,同样也可以去实现接口的
 16.什么是回调模式
 回调模式是指:如果一个方法的参数是接口类型,则在调用该方法时,需要创建并传递一个

 实现此接口类型的对象,而该方法在运行时会调用到参数对象中所实现的方法


你可能感兴趣的:(java面向对象学习笔记)