Java程序员面试题----对象和类型、包、访问控制

1. 类和对象有什么区别?

Java类通过class关键字进行定义,它代表了一种抽象的集合,例如:学生类、动物类等,在它的里面可以定义各种属性和方法,它们代表了每个类实例的特定的数据和动作,Java虚拟机对类只加载一次,对它的静态成员也只加载一次。

对象:指的是某一个特定抽象的实例,它属于某一种类型,也就是对象是通过类来创建的,它必须从属于某一个类,通过new关键字进行创建,它代表特定类型的实例,对象可以被多次创建。

简而言之,类是一种抽象,而对象是类的实现。

2. Java中如何使用继承来重用代码?

Java采用的是单继承制,使用extends关键字。通过继承以后,子类就拥有了父类除私有成员以外的所有成员,从而达到代码重用的目的,在继承过程中,可以通过方法的覆盖来实现多态,让子类拥有自己独特的方法实现方式。

3. 简述Java中的多态

多态一词安照字面意思来理解为“多种形,多种状态式”。它的本质是,发送消息给某个对象,让该对象自行决定响应何种行为。通过将子类对象的引用赋值给超类对象,用变量来实现动态方法调用。

4. 请介绍Java中静态成员的特点

类的静态成员是通过static关键字来修饰的成员,主要包括静态成员变量、静态方法、静态代码块,它们具有以下特点:

         在类的加载的时候,就进行创建和初始化或执行代码;

         它们对于一个类来说,都只有一份;

         类的所有的实例都可以访问到它们;

5. 简述Java派生类中的构造方法如何为父类传递参数

在Java中,使用super关键字加括号()的形式来为父类的构造方法提供参数,通过参数的数目和类型来决定调用哪个构造方法。如果调用的是父类默认的无参构造方法,则可以不必显示地使用super()。

6.  简述接口和抽象类的区别

抽象类是一种功能不全的类,接口只是一个抽象方法的声明和静态不能被修改的数据的集合,两者都不能被实例化。从某种意义上说,接口是一种特殊形式的抽象类,在Java语言中,抽象类表示一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

7. 简述一下内部类的实质是什么?

内部类根据定义的情况可以分为以下4种。

(1)静态内部类:它相当于外部类的静态成员一样,使用static修饰的内部类,它隶属于外部类。使用起来相当于一个独立的外部类。

(2)成员内部类:它相当于外部类的普通成员一样,隶属于外部类的具体对象,在定义它的时候,需要先创建外部类对象,再创建它的实例。

(3)局部内部类:它定义在一个方法的方法体中,它往往仅作为方法短暂的使用,只能访问用final修饰的局部变量。

(4)匿名内部类:它也定义在方法体中,但是他没有一个具体的名字,具有非常大的灵活性,工作本质与局部内部类类似。

8.包应该如何被创建及使用?

包是Java程序中关于命名空间的一种手段,它可以有效地解决类重名的问题。当需要把一个类定义在某一个包下,需要使用package关键字进行定义;当需要使用其他包下的类的时候,则需要使用import关键字进行导入。

9. 说明private、protected、public和default的区别

它们都是访问控制符,区别如下:

(1)public:可以被所有其他类访问;

(2)private:只能被自身访问和修改;

(3)protected:自身,子类及同一个包中类可以访问;

(4)default:同一个包中的类可以访问,声明时没有加修饰符,认为是friendly;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值