java面试题-定义类的修饰符

本文深入探讨Java中的访问修饰符,包括public、protected、private和default的使用范围及限制,特别强调了类、变量、方法的修饰符选择,并解析了为何外部类不能使用private和protected进行修饰。

10.定义类时不可能用到的关键字是?

A. final

B. public

C. protected

D. static

java基础面试题-中级20题答案解析版

正确答案是:C

这题我当时选择D,答错了。

static 使用对象:类、变量、方法、初始化函数(注意:修饰类时只能修饰 内部类 )

final 使用对象:类、变量、方法

public 使用对象:最广,类、接口、变量、方法

protected使用对象:变量、方法 注意:不能修饰类(外部类)

Java  的外部类为什么不能使⽤  private  和  protected  进⾏修饰  对于这个问题,⼀直没有仔细思考,今天整理⼀下:   对于顶级类  (  外部类  )  来说,只有两种修饰符:  public  和默认  (  default  )  。因为外部类的上⼀单元是包,所以外部类只有两个作⽤域:  同包,任何位置。因此,只需要两种控制权限:包控制权限和公开访问权限,也就对应两种控制修饰符:  public  和默认  (default)  。   如果类使⽤了  private  修饰符,说明是个内部类。内部类的上⼀级是外部类,那么对应的有四种访问控制修饰符:本类   (private)  ,同包  (default)  ,⽗⼦类  (protected)  ,任何位置  (public)  。当⼀个内部类使⽤了  private  修饰后,只能在该类的外部类内  部使⽤。   上⾯这些都是平时使⽤司空见惯的,但是为什么是这种情况呢?   可以想⼀下,⼀个  java  项⽬是不可能在⼀个  class  ⾥⾯完成的。  mvc  模式中,是把类分为三层,⼀层层调⽤类。如果定义为私有  的和受保护的就⽆法调⽤。换句话说,对于⼀个  java  ⽂件,要么就是⾃⼰单独运⾏,要么就是被其他程序作为库调⽤,如果⼀  个  java  ⽂件的类被  private  修饰,那么是不是其他的程序或是类是⽆法使⽤它的,那么他作为⼀个单独的⽂件就没啥⽤了。如果  它作为单个⽂件运⾏,类加载怎么找到它呢,因为它对外不可见。同时,也失去了类的存在意义。因此,类只有  public  和默认  修饰符。

package com.songxinfeng;

public class Test{
	public static class method{//内部类
	}
	protected static class method4{//内部类
	}
	protected class method5{//内部类
	} 
	static class method7{//内部类
	}
	
}
final class Test2{//不能被继承或修改,如String
}
static class method6{
}
protected class Test3{
}

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

songfelicity

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值