首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

新手有关问题!求解决

2012-04-11 
新手问题!求解决谁知道这代码错在哪了啊?搞了半天也没找出来。class Person{private String namevoid setN

新手问题!求解决
谁知道这代码错在哪了啊?搞了半天也没找出来。

class Person{
private String name;

void setName(String n){
this.name = n;
}


String getInfo(){
return "name is"+ this.name;
}
}

class Student extends Person{

private String school;

void setSchool(String s){
this.school = s;
}
String getInfo(){
return "name is "+ name + "; school is " + school;
}
}

public class TestPrivate{
public static void main(String[] args){
Person person = new Person();
Student student = new Student();
student.setName("bill");
student.setSchool("Peking University");
System.out.println(student.getInfo());
}
}

[解决办法]
private String name;改成protected String name;才能在子类里直接访问name
[解决办法]
name是private的,只能在声明这个变量的类中使用,所以可以在Person中添加一个public方法:
public String getName() {
return name;
}

然后Student的getInfo改为:
String getInfo() {
return "name is " + getName() + "; school is " + school;
}
[解决办法]

Java code
class Person {    private String name;        void setName(String n) {        this.name = n;    }    String getName() {        return name;    }    String getInfo() {        return "name is" + this.name;    }}class Student extends Person {    private String school;    void setSchool(String s) {        this.school = s;    }    String getSchool() {        return school;    }    String getInfo() {        return "name is " + this.getName() + "; school is " + this.getSchool();    }}public class TestPrivate {    public static void main(String[] args) {        Person person = new Person();        Student student = new Student();        student.setName("bill");        student.setSchool("Peking University");        System.out.println(student.getInfo());    }}
[解决办法]
private私有变量不能被子类直接使用,也可以在Person添加getName方法,然后在子类中直接调用
[解决办法]
探讨

private私有变量不能被子类直接使用,也可以在Person添加getName方法,然后在子类中直接调用

热点排行