设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
(java)如何根据名称动态返回匹配的实例? ...
返回列表
查看:
981
|
回复:
8
(java)如何根据名称动态返回匹配的实例?
[复制链接]
diver
diver
当前离线
积分
168
IP卡
狗仔卡
发表于 2004-3-26 20:43:38
|
显示全部楼层
|
阅读模式
java编程中:
在一个类中,有几个相同类型的成员,比如
JButton button1 = new JButton("Button1");
JButton button2 = new JButton("Button2");
如何写一个函数,让它能够根据String name这个参数,动态地返回参数所给名字相同的JButton实例?
比如当参数为button1时,返回名为button1的按钮实例,当参数为button2时,返回名为button2的按钮实例。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2004-3-27 09:03:56
|
显示全部楼层
为什么要返回对象呢?一般用java进行界面编程,都是在创建按钮时设定其事件监听器,一有事件发生就由相应的监听器处理,不需要通过对象标识来查找对象。
回复
支持
反对
使用道具
举报
显身卡
diver
diver
当前离线
积分
168
IP卡
狗仔卡
楼主
|
发表于 2004-3-27 09:25:25
|
显示全部楼层
不是返回对象,是返回对象的实例。
比如在一个class中,有若干个按钮,它们都是private的,不可以通过点操作符取用,如果要在外部的类中给这些按钮加监听器,就必须把它们取出来,由于它们非常相似,如果为每一个按钮写一个取用的函数,太繁琐了,如果能通过一个函数来实现就好了。
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2004-3-27 10:24:19
|
显示全部楼层
那你这个需求就有问题,本来使用类的目的就是为了封装,如果要在外部对private对象进行操纵,就违背了这个原则。如果你的目的是为了获得一个与原对象有相同属性的对象,可以new 一个对象返回给调用者,但如果是要对private对象进行操纵,唯一的办法是在class中增加方法作为对外的接口,外部的对象再通过这些接口来调用private对象的方法或者设置它们的属性。
回复
支持
反对
使用道具
举报
显身卡
henryouly
henryouly
当前离线
积分
380
IP卡
狗仔卡
发表于 2004-3-27 11:00:26
|
显示全部楼层
把对象放在容器(container)里面吧
不是很熟java的lib。如果没有相应的lib可能需要自己写一个class
实现insert, delete, get这三个基本功能
回复
支持
反对
使用道具
举报
显身卡
iDay
iDay
当前离线
积分
934
IP卡
狗仔卡
发表于 2004-3-27 11:07:24
|
显示全部楼层
用factory模式
回复
支持
反对
使用道具
举报
显身卡
diver
diver
当前离线
积分
168
IP卡
狗仔卡
楼主
|
发表于 2004-3-27 11:43:30
|
显示全部楼层
可能刚才说得不够清楚。
比如有这样一个实例:
private JButton button1 = new ("Button1");
有这样的一个函数:
public JButton getJButton (String name) { return ...; }
如果参数name为"button1",那么该函数就会返回该JButton。
回复
支持
反对
使用道具
举报
显身卡
henryouly
henryouly
当前离线
积分
380
IP卡
狗仔卡
发表于 2004-3-27 12:06:42
|
显示全部楼层
我懂你说什么阿
就是说你需要用另外一个叫做container的类来维护那些JButton的类
回复
支持
反对
使用道具
举报
显身卡
diver
diver
当前离线
积分
168
IP卡
狗仔卡
楼主
|
发表于 2004-3-27 14:10:22
|
显示全部楼层
维护那些实例吧?不过这样也麻烦,我写的那个类中有四个按钮实例,现在只能为每一个按钮写一个函数了。或者把它们前面的private去掉。
JButton是类,有且只有一个JButton类:javax.swing.JButton。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
硬件设备 Linux 驱动
Redhat/Fedora/CentOS Linux
LFS(LinuxfromScratch)
Archlinux讨论区
SuSE Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表