【发布时间】:2014-01-22 09:50:02
【问题描述】:
我创建了一个学生班级,我需要使用学生的名字后跟他们的代码(第一个学生是 1000,nxt 是 1001)来创建一个 loginId 使用 姓名的第一个字母 + 姓氏(或者如果姓氏超过 4 个字母,则只有姓氏的 4 个字母)+ 代码的结尾数字 例如约翰贝克将是,jbake00
public class Student
{
//Instance variables
private double coursecount = 0;
private static int lastAssignedNumber = 1000;
private double credit;
private String course;
//Variables
public String name;
public String address;
public String loginId = "";
public int accountNumber;
public double gpa;
//Constructs new student
public Student(String name) {
this.name = name;
this.accountNumber = lastAssignedNumber;
lastAssignedNumber++;
setloginid();//edited this one in
}
public void setloginId() {
int position = this.name.indexOf(' ');
String first_name = this.name.substring(0,1);
String last_name = this.name.substring(position + 1);
if(last_name.length() >= 4)
last_name = last_name.substring(0,4);
first_name = first_name.toLowerCase();
last_name = last_name.toLowerCase();
String digit_word = new Integer(accountNumber).toString();
String digit_short = digit_word.substring(2);
loginId += first_name + last_name + digit_short;
this.loginId = loginId;
}
我在这里遇到的问题是 loginId 没有被保存到全局变量中,这是为什么。
【问题讨论】:
-
没有保存是什么意思?当您尝试从其他方法访问它时,您无法看到 loginId 的值? (假设 setloginId() 在您尝试获取此值的方法之前运行)
-
你在哪里打电话
setloginId()? -
是的,当我尝试从另一种方法访问 loginId 时,我只得到一个空字符串。抱歉,我是新手,我只是创建该构造函数以尝试将 loginId 设置为值。
-
“我只是创建了那个构造函数来尝试将
loginId设置为一个值”然后你应该在构造函数中调用方法setloginId()。 -
这是正确的编程方式吗?在风格方面。
标签: java string variables object