关于Java的两个小问题: 5
1何苦要将一个类的成员变量,也就是属性设为private,然后再设置相应的get/set方法以便其它类能够访问到它?而get/set方法也非常简单,get方法就是直接拿到...
1
何苦要将一个类的成员变量,也就是属性设为private,然后再设置相应的get/set方法以便其它类能够访问到它?而get/set方法也非常简单,get方法就是直接拿到属性值;set就是直接给属性赋值。普遍就是这样做的,而不是我最初想像的要通过验证才能取值或赋值。那么在这种情况下直接把类的属性设为public不好吗?何必要兜一个圈子?
2
内部类能访问的他的外部类的变量为什么一定要用final来修饰?
内部类能继承其外部类吗? 展开
何苦要将一个类的成员变量,也就是属性设为private,然后再设置相应的get/set方法以便其它类能够访问到它?而get/set方法也非常简单,get方法就是直接拿到属性值;set就是直接给属性赋值。普遍就是这样做的,而不是我最初想像的要通过验证才能取值或赋值。那么在这种情况下直接把类的属性设为public不好吗?何必要兜一个圈子?
2
内部类能访问的他的外部类的变量为什么一定要用final来修饰?
内部类能继承其外部类吗? 展开
5个回答
展开全部
1.将成员变量设置为私有,提供get和set方法,这是面向对象中的封装特性。也就是说,变量代表状态,方法代表功能。就好比你家里的电视机,里面的器件是变量,电视机的面板和遥控器好比是方法。对于使用者,当然通过面板按钮和遥控器使用方便,而直接打开电视机,通过改变电子器件状态来使用电视机是不方便的也是有危害的。但是,对于非常理解电视机内部结构的维修人员,当然可以通过改改电阻大小就能改变电视机的声音大小。所以,对于面向对象中的封装特性,就是编写类的人给外界使用类的人提供统一的基于方法的使用,而不是让别人直接改变类中变量。当然,如果你的团队都是高手,编程语言方面没有障碍,当然可以把所有的成员变量都做成public(就像JavaScript语言一样),直接访问。但是这和Java的风格不同,可能会导致和其它第三方类库直接的矛盾,不便于和其它Java程序的整合。
2.匿名内部类访问变量需要final,普通内部类访问外部类变量不需要final修饰。内部类当然可以继承自外部类。
2.匿名内部类访问变量需要final,普通内部类访问外部类变量不需要final修饰。内部类当然可以继承自外部类。
展开全部
1.java三大特征:封装、继承、多态。你的问题设计到继承和多态问题。子类继承父类的结果是:子类可以访问除父类私有和构造方法外的所有父类方法及属性。这样子类就可以无所顾忌的更改父类中的非私有的成员信息,这是编程安全遇到的最糟糕的做法,为了安全性父类的属性有必要私有化处理,外部只可以通过set和get方法获取设置父类成员属性,可以保证父类属性的独立性和安全性。
2.类里套类,本身就是编程所顾忌的做法,建议不要尝试,类与类最好能独立开来,至少在视觉上让人清楚。至于为什么用final修饰也是安全考虑,这个不需要钻牛角尖
2.类里套类,本身就是编程所顾忌的做法,建议不要尝试,类与类最好能独立开来,至少在视觉上让人清楚。至于为什么用final修饰也是安全考虑,这个不需要钻牛角尖
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、要相信前人是很伟大的,一定有它的必要性和无可替代的优点,面向对象要封装。对象只需要
提供别人能访问的接口就行。难道一个人要把自己的五脏六腑漏在外面让别人触手可及吗?
2、因为内部类是依靠外部类而存在,如果外部类的变量在其他类中被改变,那内部类中的内容要改吗?(问题就在于内部类对象没有创建,无法改,所以相矛盾。)
内部类不用继承其外部类就可以用外部类的一切了没必要继承的。(java中可以继承,但前提是外部类有内部类可以访问的构造方法,一般情况下,要有无参构造。)
提供别人能访问的接口就行。难道一个人要把自己的五脏六腑漏在外面让别人触手可及吗?
2、因为内部类是依靠外部类而存在,如果外部类的变量在其他类中被改变,那内部类中的内容要改吗?(问题就在于内部类对象没有创建,无法改,所以相矛盾。)
内部类不用继承其外部类就可以用外部类的一切了没必要继承的。(java中可以继承,但前提是外部类有内部类可以访问的构造方法,一般情况下,要有无参构造。)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回去看看基本知识吧,面向对象封装性;内部类能访问的他的外部类的变量,但前提是外部类有内部类可以访问的构造方法,一般情况下,要有无参构造,而且还要看修饰符的范围。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.public类型所有类都可以访问,private类通过方法才能访问,privat可以保护成员变量不被看到
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询