Java面向对象程序设计基础知识
1.什么是封装
具体做法就是把属性私有化,提供公有的方法访问这些属性,在这些公有方法中实现对属性的控制
主要好处是:
-
将变化隔离。
-
便于使用
-
提高重要性。
-
提高安全性。
2.如何进行封装
(1)私有化成员变量,使用public、protected、private、默认四种访问修饰符控制;
(2)提供公有的get和set方法,在方法体中进行合理值的判断
(3)在构造方法中使用set方法进行合理值的判断
| 访问修饰符 | 本类 | 同包其他类 | 不同包子类 | 不同包非子类 |
|---|---|---|---|---|
| public | 可以 | 可以 | 可以 | 可以 |
| protected | 可以 | 可以 | 可以 | 不可以 |
| 默认 | 可以 | 可以 | 不可以 | 不可以 |
| private | 可以 | 不可以 | 不可以 | 不可以 |
3.什么是方法重载
Java中方法的重载,就是在一个类中,有相同的方法名称,但形参不同的方法。
方法重载的规则
方法名称必须相同
参数列表必须不同(参数个数不同、或参数类型不同、参数排列顺序不同等)。
方法的返回类型可以相同也可以不相同。
仅仅返回类型不同,不足以称为方法的重载。
同一个类中,不允许两个方法的方法名称和参数列表都相同
4.什么是构造方法
一般来说,构造方法就是在创建一个对象时调用的那个方法。
(1)构造方法的特点
(1)每当创建给定类的实例时就调用的方法
(2)与类同名,但没有返回值类型
(3)Java 为对象分配内存,初始化实例变量并调用构造方法
(4) 不能return
(5)两种构造方法
1、参数化构造方法
2、隐式构造方法
构造方法是一种特殊的方法,与一般的方法不同是: 1.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。 2.构造方法的调用是在创建一个对象时使用new操作进行的。构造方法的作用是初始化对象。 3.不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
(2)this关键字:
(1)this指向(代表)通过当前构造方法创建出的对象。
(2)this 的值指向对其调用当前方法的对象
(3)this 关键字可在需要当前类类型的对象引用时使用
5.什么是继承
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
6.如何实现继承
Java中使用extends关键字定义子类继承父类。在实现继承时,必须先定义父类,再定义子类。
7.关于继承的相关问题
在继承关系中,父类和子类需要满足(is-a)的关系。
继承可以防止子类中出现(重复)的程序代码,也就是实现代码(复用)。
子类可以继承父类的(非private属性)和(方法),还可以扩展出自己特殊的(属性)和(方法)。
Java中可以同时继承自多个父类吗?
答:不可以。
8.什么是方法重写
答: 子类中出现和父类中一模一样的方法(包括返回值类型,方法名,参数列表)
方法重写的具有3大特点:
1.发生在父类与子类之间
2.方法名相同,参数列表相同,返回类型相同
3.子类重写方法的访问权限>=父类被重写的方法
权限修饰符 : private < 默认(什么都不写) < protected < public
4.重写的方法可以使用@Override注解来标识
9.super关键字的具体用法
答:super关键字在子类中使用。super代表父类。super([参数列表])表示调用父类的构造方法(无参/有参)
父类中如果已经显示的定义了有参构造方法,但没有提供无参构造方法,在子类中必须定义有参构造方法,并且方法体第一行必须为super关键字
super关键字的用法有三种:
1.在子类的成员方法中,访问父类的成员变量。
2.在子类的成员方法中,访问父类的成员方法。
3.在子类的构造方法中,访问父类的构造方法。
10.子类构造方法中调用父类构造方法需要注意哪些问题
如果父类没有默认的构造方法,子类必须显示地调用super()并给出参数,让编译器定位到一个合适的构造方法。同时,子类不会继承任何父类的构造方法,子类默认的构造方法是编译器自动生成的,不是继承的
子类override(覆盖)父类的方法,但不能override父类的属性
子类可以继承父类的(非private属性)和(方法),还可以扩展出自己特殊的(属性)和(方法)。
缺点:提示类之间的耦合性(耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
11.final关键字
1.final关键字可用于定义常量。
2.在class关键字之前添加final关键字用于定义最终类
3.使用final关键字修饰的方法,不能被子类重写。
12.什么是多态
多态是同一个行为具有多个不同表现形式或形态的能力,就是同一个接口,使用不同的实例而执行不同的操作。
13.多态的3个必要条件
1.要有继承
2.要有重写
3.父类引用指向子类对象
14.抽象类和抽象方法
由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类。抽象类无法进行实例化,因为他不是具体存在的类,或者说这样的类还不够完善,不能直接使用new关键字调用其构造器生成该类的对象。我们可以使用abstract定义一个抽象类和抽象方法,示例代码如下:
abstract class 类名
{
abstract int 方法名(int x,int y);
}
抽象方法没有方法体。需要注意的是在抽象类中既可以有抽象方法,也可以有普通方法,注意抽象方法是没有方法体的(也就是方法后面是没有大括号的)。凡是继承这个抽象类的实体子类,都必须要实现这个抽象方法。
15.抽象类的特点
(1)抽象类不能被实例化
(2)构造方法 和 static 方法不能是抽象的
(3)父类的抽象方法往往在子类中实现
(4)抽象类可以具有指向子类对象的对象引用
16.什么是接口
接口就是一个规范,就是某个事物对外提供的一些功能的说明。使用interface关键字定义接口,一般使用接口声明方法或常量,接口中的方法只能是声明,不能是具体的实现,这一点和抽象类是不一样的。接口是更高级别的抽象。
接口的定义格式是:
public interface 接口名称{
//可以定义常量
//方法只有方法声明,而且是公共的。
public void 方法名称();
}

浙公网安备 33010602011771号