class Come1
{
private int age;
 Come1(int age)
{
this.age= age;
}
}
class ComeDemo1 
{
public static void main(String[] args) 
{
//Come c2= new Come(4);//创建对象,并为对象传递参数
//Come c1=new  Come(3);
//System.out.println("a"+c1.equals(c2));
Come1 p=new Come1(3);

System.out.println(p.age);
}
}
怎么才能把对象的age打印出来啊,上面的输出语句是错误的,

解决方案 »

  1.   

    age 是私有变量
    不能直接通过对象.的方式访问
      

  2.   

    come1中定义一个public getAge方法返回age
      

  3.   

    类中在写一个方法!
    public int getAge(){
        return this.age;
    }然后再main方法中输出;
    System.out.println(p.getAge());结贴给分吧!
      

  4.   

    你在Come1类的时候应该写一个getAge()方法,因为age为私有成员变量,对象不能直接获得,而应该通过方法得到。
    public int getAge(){
        return this.age;
    }
    最后输出的时候为:System.out.println(p.getAge())就OK了
      

  5.   

    私有变量age只能在come1本身中使用对象调用啦
      

  6.   

    class Come1
    {
    private int age;
     Come1(int age)
    {
    this.age= age;
    }
    public int getAge()
    {
    return this.age;
    }
    }
    class ComeDemo1 
    {
    public static void main(String[] args) 
    {
    //Come c2= new Come(4);//创建对象,并为对象传递参数
    //Come c1=new  Come(3);
    //System.out.println("a"+c1.equals(c2));
    Come1 p=new Come1(3);System.out.println(p.getAge());
    }
    }
      

  7.   

    打印出来很简单,public int age;
    这样就行了,但是不推荐,一般的方法是
    private int age;
    然后提供get和set方法。
      

  8.   

    这个楼主先看一下java中的域修饰符。private,public,protected,default
    解决你的问题也很简单,给age一组getter() setter()方法即可,这也是初级封装,看来楼主对opps还是理解的不够啊,加油吧!
      

  9.   

    age是私有变量,加public方法
    比如在Come1类里面加
    public int getAge() {
       return this.age;
    }
      

  10.   


    光标在在类Come1中用getter/setter方法吧
    eclipse 等右击选Source或ALT+SHIFT+S -> Generate Getters and Setters...
      

  11.   

    public int getAge(){
        return this.age;
    }
      

  12.   

    就是同志们说的,加一个getAge方法,通过访问这个方法获得ageclass Come1
    {
       private int age;
       Come1(int age)
       {
          this.age= age;
       }
       public int getAge(){
          return age;
       }
      
    }
    class ComeDemo1 
    {
        public static void main(String[] args) 
       {      Come1 p=new Come1(3);      System.out.println(p.getAge());
        }
    }
      

  13.   

    Class classType = p.getClass();
    Field field = classType.getDeclaredField("age");
    field.setAccessible(true);
    System.out.println(field.get(p));把这几行代码替换掉你原来的输出代码,就可以打印出你需要打印的东西了,记得抛出相应的异常哦!
      

  14.   

    楼上的不要给出这么高深的回复,初学者肯定还不懂反射是什么,他们其实是对面向对象的基础都不了解才会写出这样的代码敢问楼主学java编程看的是什么书?
      

  15.   


    java基础的看过thinking in java
      

  16.   

    因为你的age声明的是private,所以不能直接通过创建的对象调用,需要自己写一个get()函数,你在你的类里这样写:public int getAge(){
        return this.age;
    }然后在main函数中这样写:System.out.println(p.getAge());
      

  17.   

    大神们已经帮你解决了,你知道了么
    private修饰的变量只能在类的内部使用,类外面是无法调用的。在你的Come1的类中加上一个方法
    public int getAge(){
          return this.age;
       }
    主函数调用就写
    System.out.println(p.getAge());
      

  18.   

    age是私有的不能对象外引用~~~
      

  19.   

    大神们已经说得很清楚了。楼主好好看看访问说明符吧。private是提供限制级别最高的访问。只能在定义的类级别以内使用。
      

  20.   

    age是Come1类的私有成员变量,只能在该类中访问.其他地方都不能访问,可以更改一下age的权限修饰..
      

  21.   

    写一个get(),set()方法就轻松解决了
      

  22.   

    class Come1
    {
    private int age;
     public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    Come1(int age)
    {
    this.age= age;
    }
    }
    class ComeDemo1  
    {
    public static void main(String[] args) 
    {
    //Come c2= new Come(4);//创建对象,并为对象传递参数
    //Come c1=new  Come(3);
    //System.out.println("a"+c1.equals(c2));
    Come1 p=new Come1(3);System.out.println(p.getAge());
    }
    }好运
      

  23.   

    class Come1 {
    private int age; public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } Come1(int age) {
    this.age = age;
    }
    }class ComeDemo1 {
    public static void main(String[] args) {
    // Come c2= new Come(4);//创建对象,并为对象传递参数
    // Come c1=new Come(3);
    // System.out.println("a"+c1.equals(c2));
    Come1 p = new Come1(3); System.out.println(p.getAge());
    }
    }
      

  24.   

    java 里面类的变量,初学者应该把每个变量的geter和seter 都要写出来。需要调用变量的时候就可以用geter调用,用seter 赋值,这是面向对象的思想--封装;这样你就会可以在geter 上面加上public让你的main方法可以间接访问age
    ps: geter ,seter 例子
    public void setAge(int age){
      this.age = age;
    }
    public int getAge(){
      return this.age;
    }
      

  25.   

    class Come1
    {
    private int age;
     Come1(int age)
    {
       this.setAge(age);
    }
    public void setAge(int age) {
    this.age = age;
    }
    public int getAge() {
    return age;
    }
    }

    class Test6 
    {
    public static void main(String[] args) 
    {
    //Come c2= new Come(4);//创建对象,并为对象传递参数
    //Come c1=new  Come(3);
    //System.out.println("a"+c1.equals(c2));
    Come1 p=new Come1(3);       System.out.println(p.getAge());
    }
    }
    私有变量 只能通过getter和setter方法获得