Java类的提问对象的问题问题

261 条评论分享收藏感谢收起赞同 2414 条评论分享收藏感谢收起面向对象编程中属性和方法封装进哪个对象的问题,懂的请回答?【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:721,378贴子:
面向对象编程中属性和方法封装进哪个对象的问题,懂的请回答?收藏
在面向对象编程中,我一直分不清属性和方法应该封装进哪个对象。比如:“人走路”这一事物,“人”要建立一个对象,“路”要建立一个对象,但“走”这一方法到底是封装在“人”对象中还是封装在“路”对象中,自己实在没什么办法,以至于编程非常混乱,程序编写出来之后满篇找属性和方法在哪里,请问有没有内行知道,这种情况有没有什么办法解决,或有没有什么统一的标准,谢谢!!
51CTO学院12年行业品牌,1600万用户选择,中国专业IT技能学习平台.java资深大牛授课,0基础从入门到精通,java报名与培训中心.
当然是人才会走啊,路怎么走
走路属于人的一个行为,封装到人的方法里,对于路,有自己的行为和方法,但是走路和它没关系
面对对象(敲黑板)
人创类。路创个方法。main调用。不就是人在走路了。
其实我是在编写远控软件时遇到这个问题的,而且现在仍然没有解决,不知道方法放进哪个类好,请您给个意见。编写远控时,客户端为每一个上线主机创建一个类(取名:主机类)来管理这台主机,当需要操纵管理这台主机时,就要在主程序的界面上打开一个窗口,以便查看主机上的资源和对其远程控制。打开窗口这个动作是主机类对象发出的,但此窗口却是主窗口(取名:主窗口类)的一个扩展,他的父窗口是主进程窗口,按照常规编程习惯,打开子窗口这个动作都是又父窗口发出的,而这个例子中却出现了两种可能性,此动作可以又它的父窗口类(主窗口类)来封装,也可以由主机类来封装,不知怎么选择好?我个人还是倾向于把打开子窗口这个动作集成在主窗口类中,虽然此动作源于主机类,但将其集成在主机类中并不符合编程习惯,还是把所有的子窗口控制集中在一个父窗口类中比较紧凑,你觉得呢?
我觉得有没有什么规则不重要,重要的是同一性。比如,如果要把方法封装进施动者类,而把被动者类对象作为参数传入,那么整篇程序都应该这样,而不能一会儿封装进施动者,一会儿封装进被动者……。另外,根据我的经验,在满足同一性的同时,尽量把方法封装进要调用数据多的类比较合适,比如一个方法要调用类A中的5个数据和类B中的10个数据,那么将其封装进B中就比封装进A中更合适,你认为呢?
登录百度帐号Java初学者都必须知道的六大问题_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Java初学者都必须知道的六大问题
阅读已结束,下载本文需要
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩4页未读,
定制HR最喜欢的简历
你可能喜欢23:32 提问
Java类的实例化,对象的声明,使用
有没有哪位大神帮忙解释一下图中的代码,本人是新手,希望各位前辈指教
按赞数排序
创建一个person类
类里面两个变量一个方法
方法体的内容是打印这个类里面变量的值
然后书上写错了
应该是person 不是person2
书上说的很清楚了。
int i = 1;
这个你懂么?
i是一个int型的变量,初始化值指向一个整数1。
helloworld c = new helloworld();
c是一个helloworld型的变量,初始化指向一个helloworld型的变量,这个变量由new helloworld()创建。
基础类型和对象类型的声明和赋值
可以分为两种形式 一种是在声明的时候直接赋值 比如int i =7;就是声明一个值为7的整数类型
另一种是先生命后复制 比如int i;先声明一个整数类型i 再给i赋值 i=7 ;而对象的实例化就是给一个对象类型的变量赋值
不过需要用到new关键字
上面的也可以写成HelloWorld c= new HelloWorld();
1、c是变量名。
2、变量可以在创建的时候初始化,也可以在创建完成之后再初始化。
HelloWorld c只是进行声明,没有分配内存空间。
c= new HelloWorld();是进行定义,分配了空间。
这两个可以分开写,也可以写一句。如
HelloWorld c= new HelloWorld();
记住就好了,基本的使用方法。没有那么多的为什么。
PS:你的书上写的Person2不知道什么东西,应该是Person.
helloworld c = new helloworld();中的helloworld c 是声明一个helloworld类型的引用(即变量),new helloworld()是实例化一个helloworld的对象,
即创建helloworld对象。这里的形式是声明和创建对象的步骤放在同一行,下面的 c = new helloworld();只是将声明和实例化步骤分开而已,
效果是等同的。
图1,最好将person和person2改为一致的,不然这个程序是有问题的
书上都写清楚了,一般人还有比书上跟好的见解吗
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐文章内容参考即可
Java类对象排序问题---如何对不同类的所有对象进行排序
问题如下:设有A1、A2两个类,其中均含有属性:java.util.Date time;A1中含有若干个属性a1…an,A2中含有若干个属性b1…bm,现在有A1的若干个实例 ,A2的若干个实例。现在按照time属性进行排序,依次输出A和B的所有实例。
我的设想是先创建一个公共父类,其中含有time属性,并且实现comparable接口。
class A implements Comparable&A& {
private Date date;
public String toString() {
return "A [date=" + date + "]";
public A(Date date) {
this.date = date;
public Date getDate() {
return date;
public void setDate(Date date) {
this.date = date;
public int compareTo(A o) {
long i = this.getDate().getTime() - o.getDate().getTime();
if (i == 0) {
} else if (i & 0) {
return -1;
子类A1继承A类,并增添其余的属性:
class A1 extends A {
public A1(Date date, char a1) {
super(date);
private char A1;
public char getA1() {
return A1;
public void setA1(char a1) {
public String toString() {
return "A1 [A1=" + A1 + "]";
子类A2同理继承A类:
class A2 extends A {
public A2(Date date, String a2) {
super(date);
public String toString() {
return "A2 [A2=" + A2 + "]";
public String getA2() {
return A2;
public void setA2(String a2) {
private String A2;
再写一个测试类实现需求:
public class Test1 {
public void es() {
List&A& aa = new LinkedList&A&();
List&A& bb = new LinkedList&A&();
aa.add(new A1(new Date(1111), 'a'));
aa.add(new A1(new Date(3333), 'b'));
aa.add(new A1(new Date(5555), 'c'));
aa.add(new A1(new Date(7777), 'd'));
bb.add(new A2(new Date(2222), "A"));
bb.add(new A2(new Date(4444), "B"));
bb.add(new A2(new Date(6666), "C"));
bb.add(new A2(new Date(8888), "D"));
List&A& ALL = new LinkedList&&();
ALL.addAll(aa);
ALL.addAll(bb);
for (int i = 0; i & ALL.size(); i++) {
if (ALL.get(i) instanceof A1) {
A1 a12 = (A1) ALL.get(i);
System.out.print(a12.getA1());
A2 a12 = (A2) ALL.get(i);
System.out.print(a12.getA2());
System.out.println();
System.out.println("-------------------");
Collections.sort(ALL);
for (int i = 0; i & ALL.size(); i++) {
if (ALL.get(i) instanceof A1) {
A1 a12 = (A1) ALL.get(i);
System.out.print(a12.getA1());
A2 a12 = (A2) ALL.get(i);
System.out.print(a12.getA2());
运行结果:
List对象排序通用方法
不同数据类型的数据在列表中排序的问题
JAVA 使用Comparator接口实现自定义排序
java 比较器
对多个对象进行排序操作
对一个对象数组进行排序
Java中如何把一组对象按照其某一个属性值进行排序?
对一组数据进行排序
Java 关于两个集合合并,并排序的demo
Java对对象按照其属性排序的两种方法
sort对类对象进行排序
没有更多推荐了,

我要回帖

更多关于 提问对象的问题 的文章

 

随机推荐