<1>一个学生的类student,包括成员变量“学号”,“姓名”,“性别”,“年龄”;
<2>用构造方法对个成员变量赋值;
<3>成员方法“获得学号”,“获得性别”,“获得姓名”,“获得年龄”(均返回其获得的相应值),“修改年龄”(对年龄加一岁,无返回值);
 根据以上的要求编写相应的程序,定义类student及个部分,并编写java Application程序,创建类student的对象实例,并将其各变量的值输出值屏幕上。
   我初学java,以前学过c++,可是不精通,现在这个程序有错误,我也不知道哪错了,希望高手指点啊
     
public class student {
      public student (String num,String nam,char se,int ag){
            number=num;
            name=nam;
            sex=se;
            age=ag;   
          
      }
        /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        student student1 = new student("20063690117","李明",'M',23);
        void student1.show(){
            System.out.println("-------------------");
                    System.out.println(getnum(),getnam(),getsex(),getage());
           System.out.println("-------------------");                  
        }
    }      public static String getnum(){
          return student1.number;
      }
      public static String getnam(){
           return student1.name;
       }
      public static char getsex(){
           return student1.sex;
       }
      public static int getage(){
               return student1.age;
               
           }
      private String number,name;
      private char sex;
      private int age;
   
}

解决方案 »

  1.   

    public static void main(String[] args) { 
            // TODO code application logic here 
            student student1 = new student("20063690117","sss",'M',23); 
          
                System.out.println("-------------------"); 
                        System.out.println(student1.getnum()+student1.getnam()+student1.getsex()+student1.getage()); 
               System.out.println("-------------------");                   
          
        }       public String getnum(){ 
              return number; 
          } 
          public String getnam(){ 
               return name; 
           } 
          public char getsex(){ 
               return sex; 
           } 
          public int getage(){ 
                   return age; 
                    
               } 
      

  2.   

    看了一下程序,直到你的意图大概就是想把new之后的student信息显示出来。
      先把修好的程序给你、(可以直接运行)
    package test;public class student {
    static student student1; public student(String num, String nam, char se, int ag) {
    number = num;
    name = nam;
    sex = se;
    age = ag; } /**
     * @param args
     *            the command line arguments
     */
    public static void main(String[] args) {
    // TODO code application logic here
    student1 = new student("20063690117", "李明", 'M', 23);
    show(); } static void show() {
    System.out.println("-------------------");
    System.out.println(getnum() + " " + getnam() + " " + getsex() + " "
    + getage());
    System.out.println("-------------------");
    } public static String getnum() {
    return student1.number;
    } public static String getnam() {
    return student1.name;
    } public static char getsex() {
    return student1.sex;
    } public static int getage() {
    return student1.age; } private String number, name; private char sex; private int age;}
    再给你几个提示:
    1,你不能在main()里面在定义方法。
    现在有点忙,你好好看看我修改后的程序,跟你写的比比,就知道大概了。。
      加油!
      

  3.   

       谢谢大家啊!尤其qingkangxu的话令我很感动,能够在忙中抽时间给我解疑,我想我还有什么理由不“加油”呢?!!
    下面是我改后的程序,又加了一个changeage()方法,终于把这道题给解决了:
       public class student {
         static student student1;
          public student (String num,String nam,char se,int ag){
                number=num;
                name=nam;
                sex=se;
                age=ag;   
              
          }
            /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            // TODO code application logic here
        student1 = new student("20063690117","李明",'M',23);
                changeage();
               System.out.println("---------------------");
               System.out.println(getnum()+" "+getnam()+" "+getsex()+" "+getage());
               System.out.println("---------------------");                  
          
        }      public static String getnum(){
              return student1.number;
          }
          public static String getnam(){
               return student1.name;
           }
          public static char getsex(){
               return student1.sex;
           }
          public static int getage(){
              return student1.age;     
               }
          public static void changeage(){
              student1.age+=1;  
              
          }
          private String number,name;
          private char sex;
          private int age;
     
    }
      

  4.   

    哥们,这个程序病的不轻啊!
      1,","李明",  李明后面的豆号是全角的
       2,你为什么把构造方法外的所有方法都定义为static?你应该好好了解一下static的用法!其实在这里除了main()方法外,其他的方法都没有这个必要!
       3,void student1.show(){ 
              System.out.println("-------------------"); 
                      System.out.println(getnum(),getnam(),getsex(),getage()); 
             System.out.println("-------------------");                   
          }是什么意思?想把结果现实出来?我想,你是想在外面定义这个方法,但是却又不能有返回值,是吧?其实这样的话,你就不用非要单独把它定义为一个方法了,你可以直接在main()方法中增加 System.out.println(student.getnum()+student.getnam()+student.getsex()+student.getage());就可以了!
    4,你的get()方法中用的student1是在哪里定义的呢?没有定义吧?!记住在JAVA要用一个变量必须先定义!而且,你这样要用的并不是某个特定变量的值,而至这个类的值,所以直接用 this就可以了!所以该方法应该:
    public  String getnum(){ 
            return this.number; 
        }以上就是主要的问题,把这几个问题解决了,你的程序就可以运行了,我也不把源程序发给你,你自己再写一下,有问题再问,这样才能有进步!另外给你学习JAVA一点建议:虽然你学过C++,但是你在学JAVA的时候还是必须把自己当新手!要从0开始,不要太心急,不要好高骛远!我看了你的程序,感觉兄弟其实还没有入门,我建议你去看《JAVA核心技术I》这本书会帮你很好的步入JAVA殿堂!!祝你成功!
      

  5.   

    修改后的代码(应该标准)
    public class Student {
    private String number,name; 
    private char sex; 
    private int age; 
    public Student (String number,String name,char sex,int age){ 
             this.number=number; 
             this.name=name; 
             this.sex=sex;
             this.age=age;    
        } 
    public int getAge() {
    return age;
    } public void setAge(int age) {
    this.age = age;
    } public String getName() {
    return name;
    } public void setName(String name) {
    this.name = name;
    } public String getNumber() {
    return number;
    } public void setNumber(String number) {
    this.number = number;
    } public char getSex() {
    return sex;
    } public void setSex(char sex) {
    this.sex = sex;
    }
    public void show(){
    System.out.println("-------------------"); 
            System.out.println(getNumber()+","+getName()+","+getSex()+","+getAge()); 
            System.out.println("-------------------");  
    }
     public static void main(String[] args) { 
          Student student1 = new Student("20063690117","李明",'M',23); 
          Student student2 = new Student("20063690117","sss",'M',23);  
          student1.show();
          student2.show();
         } 
       
    }
    这里是运行结果:
    -------------------
    20063690117,李明,M,23
    -------------------
    -------------------
    20063690117,sss,M,23
    -------------------
      

  6.   

    static方法和属性不能随便乱用,LZ在写类的时候要记清楚,这个是你最大的问题,当然编写规范点就不会出现无畏的错误jademeteor的程序很清楚,lz可以好好看看^_^
      

  7.   

    哈哈,谢谢了!!!不错,怪不得敢自命为java百事通。我确实是连门都没入,我大概看了java的书,有类,就没细看课本,再说了课本上讲的也不清楚,我也不想看。我原来以为这个程序完美了,结果还真有问题,static确实不能乱用,这有个问题,是不是要输出多个对象的变量值时需要用static的呢?比如输出5个学生的学号,姓名,性别,年龄,把这些变量都声明为静态的。
      

  8.   


    想输出多个对象的变量值,你只要new 多个对象,并分别给它们赋值就ok了
    不用把这几个变量声明为静态的
      

  9.   

    你应该了解一下java的内存分配
    提示一点:new 关键字是在堆内存中分配空间