大家好,我是一个刚接触JAVA的学生,在看马士兵的视频自学。正看到类和对象,自己试着一段代码,一编译,好几个错误,由于没人指导,都不指导咋出错了,还望大家指点一下。最好能顺便讲解一下this关键字的用法,我看了几遍没看懂。谢谢大家。
//person类的继承,teacher类的方法重载练习
class Person{
private String name;
private int age;
private int id;
Person (){
System.out.println("nobody");
}
Person (String _name;int _age;int _id){
name = _name;
age = _age;
id = _id;
}
public String getName(){
return ("名字是:"+name);
}
public int getAge(){
return ("年龄是:"+age);
}
public int getId(){
return ("身份证是:"+id);
}
}class Teacher extends Person{
private String zhichen;
Teacher(){
super();
}
Teacher(String _name;int _age;int _id){
super();
setZhichen();
}
public void setZhichen(String _zhichen){
zhichen = _zhichen;
}
public String getTeacherinfo(){
return
super.getName+super.getAge+super.getId+
"职称是:"+zhichen;
}
}public class TestPerson{
public static void main(String args[]){
Teacher ab = new Teacher();
Teacher ah = new Teacher("小陈",20,199003562);
this.zhichen="高级教师";
System.out.println(ah.getTeacherinfo());
}
}
//person类的继承,teacher类的方法重载练习
class Person{
private String name;
private int age;
private int id;
Person (){
System.out.println("nobody");
}
Person (String _name;int _age;int _id){
name = _name;
age = _age;
id = _id;
}
public String getName(){
return ("名字是:"+name);
}
public int getAge(){
return ("年龄是:"+age);
}
public int getId(){
return ("身份证是:"+id);
}
}class Teacher extends Person{
private String zhichen;
Teacher(){
super();
}
Teacher(String _name;int _age;int _id){
super();
setZhichen();
}
public void setZhichen(String _zhichen){
zhichen = _zhichen;
}
public String getTeacherinfo(){
return
super.getName+super.getAge+super.getId+
"职称是:"+zhichen;
}
}public class TestPerson{
public static void main(String args[]){
Teacher ab = new Teacher();
Teacher ah = new Teacher("小陈",20,199003562);
this.zhichen="高级教师";
System.out.println(ah.getTeacherinfo());
}
}
Teacher(String _name;int _age;int _id){ // ;
最近要是下注再找我啊,我是很慈祥的高利贷~
lz,视频要反复看,书也要反复看,练习更要多做。lz可以在可以使用this关键字的地方试一试这条语句:
System.out.println(this);看看输出。也许对你理解有帮助。
* 重载,英文名是overload,是指在同一个类中定义了一个以上具有相同名称,但是型构不同的方法。在同一个类中,是不允许定义多于一个的具有相同型构的方法的。
恩,我是想写的和他不一样试试嘛。
照抄的话我也会,不过那样没什么意义吧,就是自己写出来的东西,各种找不到符号啥啥的。
感谢回复,我大概知道this的表示,就是他的怎么用呢.
或者说主要干什么用。
另外,帮忙诊断一下代码的问题吧,我修改以避免重复犯错,谢谢
void setName(String name)
{
this.name = name;假如你的成员变量也叫name,那么就和参数name重复了,这个时候,你想赋值成员变量。
必须用this了,this.name指出name是该类的成员。
}
2. 表示对象自己。可能Java里面用的不多,但是C++很常见~3. 在构造函数中调用其他的构造函数。
比如:
class c {
int i;
int j;
public c(int i,int j){
this.i = i;
this.j = j;
}
}
如果不用this,你该怎么办?