关于Java机制的随笔
原创
©著作权归作者所有:来自51CTO博客作者gmllinux的原创作品,请联系作者获取转载授权,否则将追究法律责任
关于Java机制的随笔
因为自己现在的工作主要用的是VB,因此在工作之余我拿起了在学校带来的一本Java书,这本书是化志章老师写的,书名是《Java程序设计——从方法学角度描述》。当时上课的时候就觉得这本书很好,现在再度一遍的时候对有些东西更能理解了,在这里与大家分享一下。
1.为什么类的对象不能类中的private成员?
这个问题是我曾经非常想不通的问题,一个类的对象是用这个类造出来的,那这个类的所有成员应该也都包含在这个类的对象中,为什么这个类的对象不能用呢?现在我终于理解了。要理解这个问题,你首先要站对角度,你要站在一个类的设计者角度来看这个问题,你设计这个类,然后被人用你设计出来的这个类去实例化,去创建这个类的对象,那你就有权决定让使用者看到这个类的哪些东西,比如你可以让他看到public成员,他不能看到private成员,但是这个成员确实是存在在这个对象之中,而对象的使用者却看不到。打个比方,别人设计了一台电视机,这台电视机上默认就只有音量加音量键两个键,这可以认为是电视机的public成员,但是电视机肯定要有频道加频道减的功能,但是这是电视机的private成员,它不想让你看见,所以你即使拥有这台电视机你还是不能实现频道加频道减,但是在电视机的内部它是存在的,而使用电视机的人却不能使用。所以,在设计一个类的时候,你要充分考虑这个类中成员的权限问题,用哪种修饰符,这决定了你设计出来的类是一个怎样的类。好的设计应该是向外部提供适当的方法去完成足够的功能,让使用者并不需要去关心类的内部怎么实现该功能,只要调用该类提供的方法即可简单地完成自己想做的事情。
2.Java中的main方法为什么要加static关键字?
我们写Java程序的时候,写main方法一般是这么写的public static void main(String[] args),那你有没有想过main方法前面为什么要加static?我们都知道,在一个类中被static修饰的方法成为静态方法,静态方法是默认对象不存在的,就是说就算该类没有创建对象,该方法也是可用的,也就是说可以直接通过该类的类名直接引用该方法。那我们的Java程序一般都是从main方法开始执行,如果main方法不是静态方法,那就必须创建一个包含main方法类的对象来调用main方法,但这个对象在哪里创建呢?我们的main方法都还没有执行?因此回到了先有鸡还是先有蛋的问题,所以必须把main方法声明称静态方法,这样就可以让系统在不创建类对象的情况下直接饮用main方法,这也很符合逻辑,就算如果系统会自动创建对象然后去饮用不是静态方法的main方法,虽然效果是一样的,但是在大的逻辑上是说不过去的。
以上两个问题仅仅是我个人的看法,仅供大家参考,如果有说错的地方,真诚希望大家批评指正。
上一篇:VB项目测试的头疼问题
下一篇:Java思考题
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
关于ansible的随笔
闲来无事,写一下ansible相关的小知识吧。
ansible playbook shell -
关于写博客的随笔
前言:也不知道从何说起,想到什么就说什么。先说说我记笔记的习惯吧。我大约是初三的时候开始记笔记。不知
javascript 复制粘贴 -
随笔:关于开发语言
<br />随笔:关于开发语言<br />cheungmine<br />写这样的一个大的论题,对于我的水平而言,实在有些过了。
语言 工具 delphi java c# -
随笔-关于"Presales"
Good good study , Day day up......
容灾 存储 虚拟化 SAN -
关于 python 的内存机制
先看一段代码 L = [1,2,3]dic_ = {}L2 = []for i in L: dic_['sn'] = i ...
赋值 python javascript -
关于SQL JOIN的使用-随笔
图形化yyds ...
图形化 其他