【提问疑惑】Java代码类的设计与封装,方法调用

王兰花 2018-03-05 09:09:00
自学写了一个student的学生类,定义了两个方法,无参与有参
代码如下:
class Student{
private String name;
private int score;
public Student(){

}
public Student(String name,int score){
setname(String name);
setscore(int score);
}
public String getname(){
return name;
}
void setname(String name){
this.name=name;
}
public getscore(){
return score;
}
public void setscore(int score){
if(score<0)
{
System.out.print("Wrong Score!!");
}else{
this.score=score;
}
}
public void speak(){
System.out.println("我是"+name+",我今年"+age+"岁!");
}

}
class example{
public static void main(String[] args){
Studet p1=new Student();
Studet p2=new Student();
Student();
p1.name="LISI";
p1.score=90;
p2.Student="www";
p2.score=100;
}
}
但是运行javac 时报错:

example.java:8: 错误: 需要')'
setname(String name);
^
example.java:8: 错误: 不是语句
setname(String name);
^
example.java:8: 错误: 需要';'
setname(String name);
^
example.java:9: 错误: 需要 '.class'
setscore(int score);
^
example.java:9: 错误: 需要';'
setscore(int score);
^
example.java:17: 错误: 方法声明无效; 需要返回类型
public getscore(){
^
6 个错误


不求甚解,还望大家多多指点,谢谢!

...全文
520 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2018-03-06
  • 打赏
  • 举报
回复
错太多,建议在eclipse上写代码,或者一步一步写,出了问题就解决,而不是写一堆问题
TanH.blog 2018-03-05
  • 打赏
  • 举报
回复
第一个错误: public Student(String name,int score){ setname(String name); setscore(int score); } 这个构造函数中使用的setname(String name);不是Student类中static修饰的类方法,不能直接调用。所以这个错误在编译时就错了,更不用谈运行时了 构造函数中的setscore(int score);这样写完全语法错了,这又不是声明函数,调用函数又不是这样在参数那里还有int,还有就是这个函数也不是static修饰的类方法 看你写的代码,你应该是程序语言小白,你可以先百度了解一下java中static修饰的方法 第二个错误: public getscore(){ return score; }就是这个函数函数头写漏了返回类型int 第三个错误: public void speak(){ System.out.println("我是"+name+",我今年"+age+"岁!"); } Student类中根本没有age这个属性,你在这里直接用了,应该是你复制过来没有改 第四个错误: main函数中: Studet p1=new Student(); Studet p2=new Student(); 连类名都写错了。。。。。。 第五个错误: Student()构造函数不可以这样单独作为一个语句直接使用 第六个错误: Student类中两个属性你全部定义为私有private private String name; private int score; 所以不能直接在Student类外使用,只能通过Student类中的方法使用它们,比如set和get函数 第七个错误: p2.Student="www"; 哪有这样写的啊,崩溃!!! 第八个错误: main函数要写在public类中,一个java文件只能有一个public修饰的类 还有一楼的建议是正确的,这是最好的习惯! 从这个代码看出你完全不懂代码啊,好好努力学习,从最基础的Java语言的语法学起 稍微修改了一下成正确的代码: class Student{ private String name; private int score; public Student(){ } public Student(String name,int score){ this.name = name; this.score = score; } public String getName(){ return name; } void setName(String name){ this.name=name; } public int getScore(){ return score; } public void setScore(int score){ if(score<0) { System.out.print("Wrong Score!!"); }else{ this.score=score; } } public void speak(){ System.out.println("我是"+name+",我的成绩:"+score+"分!"); } } public class Test3_2 { public static void main(String[] args){ Student p1=new Student(); Student p2=new Student("jack",85); p1.setName("LISI"); p1.setScore(90); p1.speak(); p2.speak(); System.out.println(p1.getName()); System.out.println(p1.getScore()); System.out.println(p2.getName()); System.out.println(p1.getScore()); } }
CNAHYZ 2018-03-05
  • 打赏
  • 举报
回复
最后一个错误,getscore前面没有返回类型
weixin_40066981 2018-03-05
  • 打赏
  • 举报
回复
set和get后面属性第一个字母大写

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧