新足迹

 找回密码
 注册

精华好帖回顾

· 记得当时年纪小——写给各奔东西的大学室友们 (2013-1-25) Poppy123 · (终于写完了! )买房感觉像买白菜一样(后续编)---有PP哟! (2008-8-9) 岁月留下的痕迹
· 上海---我的弄堂情结 (2011-7-31) JerryWu · 关于人民币换汇及汇款的经验分享 (2010-11-5) shuyuanli
Advertisement
Advertisement
查看: 1117|回复: 10

[IT] Delete [复制链接]

发表于 2007-9-21 11:39 |显示全部楼层
此文章由 base 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 base 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Delete

[ 本帖最后由 base 于 2010-7-14 20:47 编辑 ]
Advertisement
Advertisement

发表于 2007-9-21 11:54 |显示全部楼层
此文章由 流浪的流氓 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 流浪的流氓 所有!转贴必须注明作者、出处和本声明,并保持内容完整
results is an array !!! when you use sysout print an array, it will print out the memory pointer, it is not 乱码


  public float[] studentresult()
     {
             int i;
             System.out.println("Please enter the result of four assignment.");
             for(i=0; i<4; i++)
             {
                     results = console.nextFloat();    is this working?? assign a Float value to an array ??
              }
            return results;        
     }

[ 本帖最后由 流浪的流氓 于 2007-9-21 11:00 编辑 ]

发表于 2007-9-22 11:33 |显示全部楼层
此文章由 19st9 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 19st9 所有!转贴必须注明作者、出处和本声明,并保持内容完整
in OO, there is a concept of data hiding, you have created the getter and setter, why do you still acess the member instance straight away outside the class?

发表于 2007-9-22 14:27 |显示全部楼层
此文章由 kawara 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 kawara 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 19st9 于 2007-9-22 10:33 发表
in OO, there is a concept of data hiding, you have created the getter and setter, why do you still acess the member instance straight away outside the class?


Correct. Officially  it is one aspect of Encapsulation,the other aspect is method hiding

发表于 2007-9-22 15:02 |显示全部楼层
此文章由 伐木者 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 伐木者 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Never use such a method called defaultconstructor(). The proper way:

In student class:
public Student(String firstName, String lastName) {
  this.firstName = firstName;
  this.surName = lastName;
}

In driver class:
  Student svenL = new Student("Sven", "Liao");

To print out the contents of an array, you have to loop through it, or use Arrays.toString()

[ 本帖最后由 伐木者 于 2007-9-22 14:23 编辑 ]

发表于 2007-9-22 15:04 |显示全部楼层
此文章由 伐木者 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 伐木者 所有!转贴必须注明作者、出处和本声明,并保持内容完整
原帖由 19st9 于 2007-9-22 10:33 发表
in OO, there is a concept of data hiding, you have created the getter and setter, why do you still acess the member instance straight away outside the class?


Right, the program should have made all the instance variables private.

[ 本帖最后由 伐木者 于 2007-9-22 14:22 编辑 ]
Advertisement
Advertisement

发表于 2007-9-22 15:09 |显示全部楼层
此文章由 伐木者 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 伐木者 所有!转贴必须注明作者、出处和本声明,并保持内容完整
[quote]原帖由 流浪的流氓 于 2007-9-21 10:54 发表

for(i=0; i<4; i++)
             {
                     results = console.nextFloat();    is this working?? assign a Float value to an array ??
              }


I think he meant :
for (int i = 0; i < result.length; i++) {
  results[i]= console.nextFloat();
}

[ 本帖最后由 伐木者 于 2007-9-22 14:14 编辑 ]

发表于 2007-9-22 21:55 |显示全部楼层
此文章由 base 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 base 所有!转贴必须注明作者、出处和本声明,并保持内容完整
已经按照建议修改了大部分的内容。。。

请问修改哪个部分才可以使成绩显示为正确的呢?--------------------Configuration: <Default>--------------------
Please enter the student ID number.
20610327
Please enter unit code.1011
Please enter the 4 times results.
40
50
60
70
[F@1270b73Unit Code: 1011
============================
-------  DISPLAY  ----------
Id number: 20610327
Student first name: Sven
Student surname: Liao
Results: [F@1270b73
Grade: 0
============================


Process completed.



Student Class:


/**
* @(#)student.java
*
* student application
*
* @author
* @version 1.00 2007/9/21
*/
import java.util.*;
public class Student
{
        Scanner console = new Scanner(System.in);
       
                                          
        public int idnumber;
        public String firstname;
        public String surname;
        public String unitcode;
    public float [] results = new float[4];
        public int grade;
       
        public Student(String firstname, String surname)
        {
                this.firstname = firstname;
                this.surname = surname;

        }
       
        public void display()
        {
                System.out.println("============================");
                System.out.println("-------  DISPLAY  ----------");
                System.out.println("Id number: " + idnumber);
                System.out.println("Student first name: " + firstname);
                System.out.println("Student surname: " + surname);
                System.out.println("Results: " + results);
                System.out.println("Grade: " + grade);
                System.out.println("============================");
                System.out.println("");
               
       


        }       
        // Mutator Methods, instance variables will be change after this methods.
        public float[] studentresult()
        {
                int i;
                System.out.println("Please enter the 4 times results.");
                for(i=0; i<4; i++)
                {
                        results = console.nextFloat();
                }
                return results;
        }
       
    // Accessor Methods       
        public float[] getresults()
        {
                return results;
        }
   
    // Mutator Methods, this method is used to setting id number.
        public int setidnumber()
        {
                System.out.print("Please enter student ID number.");
                idnumber=console.nextInt();
                return idnumber;
        }
       
        // Mutator Method
        public String setfirstname()
        {
               
        System.out.print("Please enter first Name.");
        firstname = console.next();
                return firstname;
        }
       
        // Mutator Methods.
        public String setsurname()
        {
                System.out.print("Please enter surname.");
                surname = console.next();
                return surname;
        }
       
        // Mutator Methods
        public String setunitcode()
        {
        System.out.print("Please enter unit code.");
        unitcode = console.next();
        return unitcode;
      
        }
       
        // Accessor Methods       
        public String getunitcode()
        {
                System.out.println("Unit Code: " + unitcode);
                return unitcode;
        }

        // Accessor Methods       
        public int idnumber()
        {
                System.out.println("Please enter the student ID number.");
                idnumber= console.nextInt();
                return idnumber;
        }
       
       
        // Accessor Methods       
        public int getgrade()
        {
           if (grade>80)
                   System.out.println("HD");
                     else if (grade>70)
                             System.out.println("D");
                             else if (grade>60)
                                     System.out.println("C");
                                     else if (grade>50)
                                             System.out.println("P");
                                             else if (grade>0)
                                                     System.out.println("N");
                                                    
                   return grade;
                  
        }
}
   



Driver Class



public class Driver
{
   
    public static void main(String[] args)
    {
           
     Student svenL = new Student("Sven", "Liao");
            svenL.firstname = "Sven";
         svenL.surname = "Liao";       
         svenL.idnumber();
         svenL.setunitcode();
         
         svenL.studentresult();
            System.out.print(svenL.getresults());
            
     svenL.getresults();
         svenL.getunitcode();
         svenL.getgrade();
            svenL.display();       
           

    }
}

[ 本帖最后由 base 于 2007-9-22 20:58 编辑 ]

发表于 2007-9-22 22:34 |显示全部楼层
此文章由 伐木者 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 伐木者 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Did you get the last sentence on level 5?

发表于 2007-9-22 23:02 |显示全部楼层
此文章由 base 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 base 所有!转贴必须注明作者、出处和本声明,并保持内容完整
In Student Class:

public Student(String firstname, String surname, float results)
        {
                this.firstname = firstname;
                this.surname = surname;
                this.results = results;

        }

In Driver
Student svenL = new Student("Sven", "Liao");
            svenL.firstname = "Sven";
         svenL.surname = "Liao";
         svenL.results(50, 60, 70, 80);         

--------------------Configuration: <Default>--------------------
C:\Documents and Settings\Sven\桌面\1002 Week10 Test\20610327\Driver.java:9: 找不到符号
符号: 构造函数 Student(java.lang.String,java.lang.String)
位置: 类 Student
     Student svenL = new Student("Sven", "Liao");
                     ^
C:\Documents and Settings\Sven\桌面\1002 Week10 Test\20610327\Driver.java:12: 找不到符号
符号: 方法 results(int,int,int,int)
位置: 类 Student
     svenL.results(50, 60, 70, 80);  
          ^
C:\Documents and Settings\Sven\桌面\1002 Week10 Test\20610327\Student.java:26: 不兼容的类型
找到: float
需要: float[]
        this.results = results;
                       ^
3 错误

Process completed.

[ 本帖最后由 base 于 2007-9-22 22:11 编辑 ]

发表于 2007-9-23 00:15 |显示全部楼层
此文章由 伐木者 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 伐木者 所有!转贴必须注明作者、出处和本声明,并保持内容完整
To print out the contents of an array, you have to loop through it, or use Arrays.toString()
Advertisement
Advertisement

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部