Java面向对象程序设计基础知识

Java面向对象程序设计基础知识

1.什么是封装

JAVA类的封装就是指隐藏对象的属性和实现细节,仅对外提供公共访问方式或者说是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。

具体做法就是把属性私有化,提供公有的方法访问这些属性,在这些公有方法中实现对属性的控制

主要好处是:

  1. 将变化隔离。

  2. 便于使用

  3. 提高重要性。

  4. 提高安全性。

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 方法名称();

}

 

posted @ 2021-06-30 19:31  甘拜下风—承让  阅读(324)  评论(0)    收藏  举报