一个取变量值的问题

rrurl 2008-11-11 02:28:23
在类a中定义一个变量a1并赋值,现在在类b中创建一个类a的对象,并掉用get方法去取值,为什么什么都取不到呢?请问该怎么解决呢?
...全文
184 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
hao99991111 2008-11-16
  • 打赏
  • 举报
回复
是地,在类外面是不能访问的此类中的private成员的,即使是此类的对象也不行。
wyyl00 2008-11-16
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 yylcslg5 的回复:]
访问修饰符
[/Quote]
我QQ图像一样,还以为是我自己回帖呢,晕
确实是访问修饰符 楼主多看书啊
SylvanLiu 2008-11-16
  • 打赏
  • 举报
回复
始终不明白:多看点书不好吗?
我不信哪本书上连这个都没写....
landyshouguo 2008-11-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rrurl 的回复:]
例如:

类A中,double year = 1980;
private double getYear()
{
return year;
}

类B中, A a = new A();
double year1= a.getYear();
System.out.print("year1="+year1);

为什么输出year1为空呢?怎么样才能取到值呢?谢谢
[/Quote]88
yylcslg5 2008-11-16
  • 打赏
  • 举报
回复
访问修饰符
morningsun2218 2008-11-16
  • 打赏
  • 举报
回复
那你就在那个类中再定义一个共有函数调用那个私有的,但是好像没什么意思啊
还是给你个单例模式的代码吧,也许你会明白点什么
class Single{
private Single(){}
private static final Single s1=new Single();
public static Single getSingleInstance(){
return s1;
}
public void Say(){
System.out.println("我开始说话了。。。。");
}

}

public class SingletonDemo {


public static void main(String[] args) {
Single s=Single.getSingleInstance();
s.Say();

}

}
lxxzhy 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 rrurl 的回复:]
我的get的方法是public的阿,试了下还是取不到数据阿
[/Quote]
上代码才是硬道理.
Ling_wwl 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rrurl 的回复:]
例如:

类A中,double year = 1980;
private double getYear()
{
return year;
}

类B中, A a = new A();
double year1= a.getYear();
System.out.print("year1="+year1);

为什么输出year1为空呢?怎么样才能取到值呢?谢谢
[/Quote]

private 是私有的,只有在A类中才能看到,要么用public,要么就在A类中继承B类。
W-Aires 2008-11-13
  • 打赏
  • 举报
回复
Method m = A.class.getDeclaredMethod("getYear");
m.setAccessible(true);
System.out.println(m.invoke(a));

hehe~
echoabs 2008-11-11
  • 打赏
  • 举报
回复
这个是个修饰符权限的问题,private的访问权限只能是在本类中。
一般的设计方案是把类中的成员变量设置成private,而提供公有构造器去访问和设置成员变量,也就是用SET或则GET方法去实现行为,这样做的目的是为了保证数据的完整型。
建议LZ多看点J2SE基础方面的东西,对面向对象程序设计的封装,继承和多态要有一定的了解!
shenjie1989 2008-11-11
  • 打赏
  • 举报
回复
最简单的,晕。
view8888 2008-11-11
  • 打赏
  • 举报
回复
基础啊!!!!!晕
建议LZ 回去闭门修炼。
你再次出关时 应该就好多了
showde123 2008-11-11
  • 打赏
  • 举报
回复
基础基础基础
rrurl 2008-11-11
  • 打赏
  • 举报
回复
我的get的方法是public的阿,试了下还是取不到数据阿
jcyan 2008-11-11
  • 打赏
  • 举报
回复
private double getYear()
修改为:
public double getYear()
aide1986 2008-11-11
  • 打赏
  • 举报
回复
这个是个简单的例子,你看看吧

public class T
{
public static void main(String[] args)
{
T1 t1 = new T1();
String name = t1.getName();
System.out.println(name);
t1.setName("b");
String name1 = t1.getName();
System.out.println(name1);
}

}
class T1
{
String name = "a";
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}

}
chengyu2099 2008-11-11
  • 打赏
  • 举报
回复
private 的范围是在本类中的,跨类是不可以访问的
如果想范围,可以利用javaBean的get,set方法
楚凌风 2008-11-11
  • 打赏
  • 举报
回复

Class{
double year;
public void setYear(double year){
this.year=year;
}
public double getYear(){
return year;
}
}
lizhi1026 2008-11-11
  • 打赏
  • 举报
回复
class A{
private ValueA;
set(get)函数
}

class B{
A a =new A();
b.setValueA(//输入你的值);
b.getValueA();
}

eclipse 中的字段set,get 会自动生成的,不用自己写,自己写还爱错。
rrurl 2008-11-11
  • 打赏
  • 举报
回复
怎么用set方法,再用get取值呢?
加载更多回复(8)

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧