黑马程序员技术交流社区
标题: 编译错误,求解决 [打印本页]
作者: 付左军 时间: 2012-4-24 13:16
标题: 编译错误,求解决
class Person
{
private int age;//(只能在该类中访问)
public void setAge(int a)
{
if (a>0)
{
age=a;
speak();
}
else
System.out.println("feiha");
}
public int getAge(int a)
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
public static void main(String [] args)
{
Person p=new Person();
p.age=-20;
p.speak();
}
}
编译时提示错误2个,提示最后一行大括号非法字符,语法分析时已达到文件尾
作者: 付左军 时间: 2012-4-24 13:26
class Person
{
private int age;//(只能在该类中访问)
public void setAge(int a)
{
if (a>0)
{
age=a;
speak();
}
else
System.out.println("feiha");
}
public int getAge(int a)
{
return age;
}
void speak()
{
System.out.println("age="+age);
}
}
class PersonDemo
{
Person p= new Person();
p.setAge(-20);//编译时,需要标识符?
p.speak();//需要标识符?
}
作者: 付左军 时间: 2012-4-24 13:30
2了没填主函数。、。。。
作者: 真真姐 时间: 2012-4-24 14:07
本帖最后由 杨国祯 于 2012-4-24 14:08 编辑
第一个问题、实际上错误就在于,私有的变量,外部使用必须通过get set方法
所以应该改为
Compile p =new Compile();
p.setAge(-20); // 对于另一个类的变量的访问,必须通过get set方法
p.speak();
第二个问题,你发的不详细不太了解你什么意思
作者: 乔建国 时间: 2012-4-24 14:15
这样写比较规范一点
class Person{
private int age; //此处设置为私有,对外隐藏age属性用于保护数据
public void setAge(int age){ // 对外提供对应的set方法,对年龄进行赋值
if(age<0||age>130){ //比较正常的年龄范围
System.out.println("你输入的年龄有误!");
}
this.age=age;
}
public int getAge(){ // 对外提供对应的get方法,对年龄进行访问
return age;
}
void speak(){
System.out.println("age="+age);
}
}
public class PersonDemo{
public static void main(String[] args){
Person p=new Person();
p.setAge(20); //对年龄进行赋值
p.speak();
System.out.println("age="+p.getAge());//对年龄进行访问
}
}
作者: 崔仁军 时间: 2012-4-24 16:13
有4个问题
1 是在set 值时 不用调用speak 方法
2 在get方法时不用传入参数
3 没用写主函数 没有主函数程序是不能执行的 因为主函数是程序的入口
4 我认为要获取age属性 直接用get方法 speak 方法是多余的
我修改的程序如下
class Person
{
private int age;//(只能在该类中访问)
public void setAge(int a)
{
if (a>0)
{
age=a;
}
else
System.out.println("feiha");
}
public int getAge()
{
return age;
}
}
class PersonDemo
{
public static void main (String [] args )
{
Person p= new Person();
p.setAge(-20);
int b = p.getAge();
System.out.println("age=" + b );
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |