基础—概念篇

1、方法:在类中的具有特定功能的一段独立小程序

注意:方法中只能调用方法,不能定义方法;定义方法时,方法的结果应该返回给调用者,交由调用者处理

定义方法时的两个明确:

1)这个功能的结果是什么(方法返回值类型)

2)这个功能实现的过程中是否需要未知的内容参与运算,参数列表(参数个数,参数类型)


2、方法重载

在同一类中,允许存在一个以上的同名方法,只要他们的参数个数或者参数类型不同即可。


3、内存的划分

1)寄存器(cpu);2)本地方法区(本地系统);3)方法区(类、静态变量);

4)栈内存(局部变量);5)堆内存(数组、对象)


5、局部代码块

用来限定局部变量的生命周期


6、堆内存特点

1)堆内存每一个实体都有地址值;

2)堆内存中的每一个变量都有默认初始化值(整数为0;小数为0.0,或者0.0f;boolean值为false;)

3)垃圾回收机制(优于c++,需要手动回收)


7、静态代码块

随着类的加载而加载并执行,加载后只执行一次;

作用:可以对类进行初始化


8、继承

java中一个子类只能有一个直接父类。不支持多继承是因为会产生调用的不确定性。


9、方法的两个特性

1)重载,在同一类中,方法名称相同,但是参数列表不同。

2)覆盖,在子父类中,也称为重写。返回值,函数名,参数列表完全相同。


10、覆盖的注意事项

1)子类方法覆盖父类方法时,子类权限必须大于等于父类权限

2)静态方法只能覆盖静态方法,或者被静态方法覆盖


11、this(),super()

这两个只能使用一个,因为,super和this都只能放在第一行,所以只能有一个。


12、面向对象的三个特征:

封装、继承、多态


13、对象初始化过程:

默认初始化,显示初始化、构造函数初始化(先父后子)


14、final关键字

final修饰的类不可被继承

final修饰的变量时常量

final修饰的方法不可被覆盖

内部类只能访问被final修饰的局部变量

final固定显示初始化,不固定默认初始化


15、抽象类

1)抽象类有构造方法吗?

有,用于给子类对象进行初始化

2)抽象类可以不定义抽象方法吗?

可以的,AWT适配器对象就是这种抽象类。通常这个类中的方法有方法体,但是没有内容


16、抽象类与一般类

1)一般类中有足够的信息描述事物,抽象类描述事物的信息不足

2)一般类中不能定义抽象方法,抽象类中可以定义抽象方法和非抽象方法

3)一般类可以被实例化,抽象类不可以被实例化


17、接口特点

接口可以用来多实现

接口是对外暴露的规则

接口是程序的功能扩展

接口与接口之间可以是继承关系

接口的出现降低了耦合性


18、接口和抽象类的区别

相同点:都是不断向上抽取而来的

不同点:

1)抽象类需要被继承,而且只能单继承;接口需要被实现,可以多实现

2)抽象类中可以定义抽象方法和非抽象方法,子类继承后可以直接使用费抽象方法;

接口中只能定义抽象方法,必须由子类实现

3)抽象类中的继承是is a关系;所属接口的实现是like a关系

4)抽象类在定义体系的本共性内容;接口类在定义体系的额外功能


19、多态

多态好处:提高了代码的扩展性;前期定义的代码可以使用后期的内容

多态前提:必须要有关系(继承、实现);必须要有覆盖

多态弊端:前期定义的内容不能调用子类特有的内容(向上转型,限制了子类特有的功能)

多态—成员变量:编译和运行都看左边

多态—成员方法(非静态):编译看左边,运行看右边

多态—静态方法:编译和运行都看左边


20、内部类

内部类访问特点:

1)内部类可以直接访问外部类成员

2)外部类访问内部类需要先创建内部类对象

3)内部类在局部位置上只能访问局部中被final修饰的局部变量

4)如果内部类是静态的,相当于一个外部类

5)内部类可以访问外部类中的成员
如果该成员在内部类和外部类中重复定义,那么会访问内部类的成员。
6)静态内部类只能访问外部类中的静态成员。
7)如果内部类中有成员是静态的,那么该内部类也必须定义成静态的。

Outer.Inner in=new Outer().new Inner();


21、匿名内部类

前提:该内部类必须继承或者实现一个外部类或者接口

匿名内部类:其实就是一个匿名子类对象

匿名内部类的使用场景之一:当方法参数是接口类型时,并且接口中的方法不超过三个


22、异常

异常其实就是java通过面向对象的思想,将问题封装成对象,用异常进行描述。

异常分类

1)编译时被检测异常

2)编译时不检测异常、运行时检测异常

多catch情况时,父类的catch应该放在最下面

可抛性指什么?

通过两个关键字体现:throw,throws;凡是可以被这两个关键字所操纵的类和对象,都具备可抛性。

try,catch,finally代码块的组成特点:

1)当没有资源需要关闭时,可以不用finally

2)需要关闭的资源定义在finally中

3)try finally 异常无法直接catch处理,但是资源需要关闭

异常类注意事项:

1)子类在覆盖父类方法时,父类方法如果抛出了异常,子类方法只能抛出父类的异常,或者该异常的子类或者不抛

2)如果父类抛出多个异常,子类在覆盖父类方法时只能抛出父类异常的子集

3)如果父类没有抛出异常,那么子类覆盖父类方法时绝对不能抛异常


23、this关键字

this代表所在方法所属对象的引用。

简单说:那个对象调用了this所在的方法,this就代表那个对象


24、static关键字

用来表示对象共享的数据

特点:

1)static是一个修饰符,用来修饰成员

2)static修饰的成员被所有对象共享

3)static修饰的成员,多一种调用方式:被类名直接调用

4)static修饰的数据时共享数据,对象中存储的是特有数据


25、成员变量和静态变量的区别

1)变量生命周期不同

成员变量随着对象的创建而创建,随着对象的释放而释放;

静态变量随着类的加载而加载,随着类的消失而消失;

2)调用方式不同

成员变量只能被对象调用;

静态变量可以被对象调用,也可以被类名调用;

3)别名不同

成员变量也称为实例变量‘

静态变量也称为类变量

4)数据存储位置不同

成员变量存储在堆内存的对象中,所以也叫对象的特有数据;

静态变量在方法区的静态区中,所以也叫对象的共享数据;


26、静态使用注意事项

1)静态方法只能访问静态成员,非静态既可以访问静态也可以访问非静态

2)静态方法不可以定义this或者super关键字



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值