class Employee
{
   private String name;
   private int age;   public Employee(String name1,int age1)
   {
      name = name1;
      age = age1;
   }
}class Worker extends Employee
{
    private char category; //级别
    private boolean jintie; //津贴   public Worker(String name1,int age1,char category1,boolean jintie1)
   {
      super(name1,age1);
      category = category1;
      jintie = jintie1;
   }
}class Officer extends Employee
{
   private boolean nianzhongjiang;
   private boolean chetie ;
  
   public Officer(String name2,int age1,boolean nianzhongjiang1,boolean chetie1)
   {
      super(name2,age1);
      nianzhongjiang = nianzhongjiang1;
      chetie = chetie1;
   }
}public class Demo12 
{
   public static void main(String[] args)
   {
      Worker worker = new Worker("约翰",24,'B',false);
      System.out.println("工人信息:");
      System.out.println("名字:"+worker.name);
      System.out.println("年龄:"+worker.age);
      System.out.println("级别:"+worker.category);
      if(worker.jintie)
        System.out.println("有津贴");
      else
        System.out.println("无津贴");      Officer officer = new Officer("John",22,true,true);
      System.out.println("办公室信息:");
      System.out.println("姓名:"+officer.name);
      System.out.println("年龄:"+officer.age);
      if(officer.nianzhongjiang)
      System.out.println("有年终奖");
     else
       System.out.println("没有");
      if(officer.chetie)
       System.out.println("有");
      else 
        System.out.println("无");
   }
}我把变量设为private 怎么抱错啊!按道理说将变量设为私有,通过公有的构造函数可以访问啊!

解决方案 »

  1.   

    Demo12.java:45: name 可以在 Employee 中访问 private
                System.out.println("名字:"+worker.name);大哥,是这样的。首先一个private  int a 他属于当前类。
    如果你用new 出来一个对像去访问a这个变量是不行了。如果可以访问那就不是你public 出来一个属性吗?
      

  2.   

    class   Employee 

          private   String   name; 
          private   int   age;       public   Employee(String  name1,int  age1) 
          { 
                name   =   name1; 
                age   =   age1; 
                   System.out.println("名字:"+name); 
                System.out.println("年龄:"+age); 
          } 
    } class   Worker   extends   Employee 

            private   char   category;   //级别 
            private   boolean   jintie;   //津贴       public   Worker(String   name1,int   age1,char   category1,boolean   jintie1) 
          { 
                super(name1,age1); 
                category   =   category1; 
                jintie   =   jintie1; 
          } 
    } class   Officer   extends   Employee 

          private   boolean   nianzhongjiang; 
          private   boolean   chetie   ; 
        
          public   Officer(String   name2,int   age1,boolean   nianzhongjiang1,boolean   chetie1) 
          { 
                super(name2,age1); 
                nianzhongjiang   =   nianzhongjiang1; 
                chetie   =   chetie1; 
          } 
    } public   class   Demo12   

          public   static   void   main(String[]   args) 
          { 
                Worker   worker   =   new   Worker("约翰22",24,'B',false); 
                System.out.println("工人信息:"); 
              
                System.out.println("级别:"+worker.category); 
                if(worker.jintie) 
                    System.out.println("有津贴"); 
                else 
                    System.out.println("无津贴");             Officer   officer   =   new   Officer("John",22,true,true); 
                System.out.println("办公室信息:"); 
                
                if(officer.nianzhongjiang) 
                System.out.println("有年终奖"); 
              else 
                  System.out.println("没有"); 
                if(officer.chetie) 
                  System.out.println("有"); 
                else   
                    System.out.println("无"); 
          } 

    我如果把它这样改了,怎么还抱错啊!不是worker类的对象难道不能访问本类的私有成员吗?Demo12.java:48:   category   可以在   Worker   中访问   private 
                            System.out.println("级别:"+worker.category); 
    Demo12.java:49:   jintie   可以在   Worker   中访问   private 
                            System.out.println("名字:"+worker.jintie); Demo12.java:57:   nianzhongjiang   可以在   Officer   中访问   private 
                            System.out.println("名字:"+officer.nianzhongjiang); Demo12.java:61:   chetie   可以在   Officer   中访问   private 
                            System.out.println("名字:"+officer.chetie); 
      

  3.   

    多谢,领教了
    www.mysupersoft.com/allguides/rmvb_to_avi_converter