社区
Java SE
帖子详情
两个基础的问题(类访问权限&自动装箱)
aipb2008
2008-03-17 02:35:52
问题1:
类访问权限的作用是什么?我觉得是否允许一个类的方法和字段被类使用者访问,由它们各自的访问权限足够控制了。
类访问权限和方法、字段访问权限的优先级?前者对后者有控制权吗?(比如包含关系)
问题2:
println(100);
这里调用的函数是println(int)还是println(Object),我看了下,两个方法都有重载,那么是调用的前一个还是先装箱成
Integer再调用?有什么规则?
由此引发的问题:自动装箱发生在哪些情况下?
谢谢先。
...全文
80
8
打赏
收藏
两个基础的问题(类访问权限&自动装箱)
问题1: 类访问权限的作用是什么?我觉得是否允许一个类的方法和字段被类使用者访问,由它们各自的访问权限足够控制了。 类访问权限和方法、字段访问权限的优先级?前者对后者有控制权吗?(比如包含关系) 问题2: println(100); 这里调用的函数是println(int)还是println(Object),我看了下,两个方法都有重载,那么是调用的前一个还是先装箱成 Integer再调用?有什么规则? 由此引发的问题:自动装箱发生在哪些情况下? 谢谢先。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
aipb2008
2008-03-17
打赏
举报
回复
[Quote=引用 3 楼 aipb2008 的回复:]
问题1中,假设一个类没有设置public,那么即使该类的方法被设置为public,在包外也不能访问。
这是不是说明类访问对成员访问优先,有绝对的控制权?
[/Quote]
请看问题回答。
另外6楼:class可以设置为private?
ooo19841080xinxin
2008-03-17
打赏
举报
回复
子类继承父类,也只能调用父类中的public字段和public方法 .........疑问
难道protected是不可见的吗?
xms_999
2008-03-17
打赏
举报
回复
问题1 类的访问权限 主要是对子类继承关系的限制,对于 继承private class 的父类 ,其父类对子类而言全是不可见的。
问题2 类型加宽 如果int 类型 首先去匹配参数为 int 的方法 ,随后再是 Integer .最后匹配 Object类型。
wenzheng38
2008-03-17
打赏
举报
回复
类的权限设置是为了实现类间的继承问题
子类继承父类,也只能调用父类中的public字段和public方法
类对自身的成员的访问的权限肯定大于外界对其成员的访问,这在于对成员的设置权限
aipb2008
2008-03-17
打赏
举报
回复
第2个问题谢谢,呵呵,明白了。
aipb2008
2008-03-17
打赏
举报
回复
你说的我不太明白。
问题1中,假设一个类没有设置public,那么即使该类的方法被设置为public,在包外也不能访问。
这是不是说明类访问对成员访问优先,有绝对的控制权?
forestking_xx
2008-03-17
打赏
举报
回复
第二个试试的,就知道是调用print(int),如果没有这个就会调用print(Object);如果定义了print(Integer),print(int),
print(Object) 那么调用的关系是print(int) 先于 print(Integer),最后才是print(Object);
forestking_xx
2008-03-17
打赏
举报
回复
我觉的类的访问权限和方法的访问权限是不同粒度的考虑,举个例子:
在一个屋里,我们不希望日记本被别人看到,所以我们把日记本锁了起来;如果我们不希望别人写我们的本子,我们就不允许别人写;这时候
我们是把日记设为private, 而对于本子,我们只是把“写”设为private。两个都是有必要的。
另外,public,private并不能完全保证安全性,它们只是表明了不同的访问级别。private的方法如果想被使用到,都会间接的通过
public的方法访问到,否则这个方法就没有意义。
Java_JDK1.5新特性
JDK1.5 新特性 引言:本文主要介绍了自动拆装箱,增强for,静态导入,可变参数; 1. 自动拆装箱 JDK1.5后简化了定义方式提供
自动装箱
、拆箱,使得基本
类
型和包装
类
型自动转换,简化使用包装
类
的编程过程。
自动装箱
:将基本
类
型赋值包装
类
型,调用valueOf(int i)(int---->Integer) 自动拆箱:将包装
类
型值直接赋值给基本
类
型调用intValue()(Integer—>int) public static void main(String[] args
java
基础
重点概念
1.基本数据
类
型(原生
类
型):byte,short,int,long,float,double,char,boolean 自动
类
型转换:小范围的数转为大范围的
自动装箱
:Integer a=123; 拆箱再装箱 a=a+3; 2.重载:一个
类
,函数同名,参数个数、
类
型、顺序不同,与返回值修饰符无关 重写:子父
类
,函数同名,参数相同,返回值相容,子
访问权限
>=父
类
权限 3.构造函数的初始化...
Java
基础
篇常见面试
问题
总结
装箱:将基本
类
型转换成包装
类
对象拆箱:将包装
类
对象转换成基本
类
型的值java 为什么要引入
自动装箱
和拆箱的功能?主要是用于 java集合中,List list=new ArrayList();list 集合如果要放整数的话,只能放对象,不能放基本
类
型,因此需要将整数
自动装箱
成对象。Integer是 int的包装
类
,int则是 java的一种基本数据
类
型Integer变量必须实例化后才能使用,而 int变量不需要。
java
基础
知识面试题
答:自动拆箱和
自动装箱
是
基础
数据
类
型及其包装
类
根据运行逻辑自动进行切换,
自动装箱
是通过调用对应包装
类
的valueOf方法来实现的。例如,Integer.valueOf(int i)方法会被编译器自动调用,将基本数据
类
型int转换为Integer对象。自动拆箱是通过调用对应包装
类
的xxxValue()方法来实现的。例如,Integer.intValue()方法会被编译器自动调用,将Integer对象转换为int
类
型。
Java
基础
知识点(必备)
Java语言
基础
知识点
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章