黑马程序员技术交流社区
标题:
帮忙看一段小程序
[打印本页]
作者:
王瀛
时间:
2012-12-22 10:59
标题:
帮忙看一段小程序
刚开始学,接触private。自己写了一段代码,运行虽然无误,但是感觉哪儿不太对的样子。。。
(setAge那里搞不懂,this也不是很明白)
能不能顺便说说 private的一些用法。
下面附代码
package myTest;
public class PersonDemo {
public static void main(String[] args) {
Person p = new Person();
p.setAge(80);
p.speak();
}
}
class Person{
private int age;
public void setAge(int age){//设置age
this.age = age;
}
void speak(){
System.out.println("my age is"+"..."+age);
}
}
复制代码
作者:
hanyahui
时间:
2012-12-22 11:15
把属性定义成私有的,不让其他类访问,然后给一个共有的set,get方法让他们设置,set里面你可以写过滤,不符合条件的不让输入,用这个避免了人们乱输入的情况
作者:
张占忠
时间:
2012-12-22 11:20
private 顾名思义,私有的!为何说是私有的,就是说:这个属性只有我定义的这个类可以调用,其他的类只可以,通过使用我这个类当中的方法。才可以使用这个属性。这个是为了,程序的严谨性。一些,重要的数据。都要,经过,实体类进行,封装! 比如说,姓名, 密码 身份啊!等!
而 this.属性, 就是 通过这个方法调用本类的属性! 只在,这个类中使用!
作者:
董将
时间:
2012-12-22 11:44
这个里面少了一个无参构造器,这个自己最好写上,虽然不写系统会默认给你加上,但是在以后的程序学习中会产生一点点小问题,明确好private定义属性的特点,私有属性,只能在自己这个类中使用,但是我要给外界一个接口,能让别人访问,因而就需要写set get方法,通过这个方法,你可以设置好格式,让别人在访问时必须按照自己规定的格式来输入。
作者:
夏晓彤
时间:
2012-12-23 00:40
本帖最后由 夏晓彤 于 2012-12-23 00:41 编辑
this.age=age, age是指的setAge(int age)方法中的参数,this.age是被private修饰的局部变量age
this举个例子,
class A{
private String name;
public StringgetName(){
return this.name;
}
public void setName(String name){
this.name=name
}
}
main方法里执行的代码
A a1=new A();
A a2=new A();
a1.setName("aa");
a2.setName("bb");
当执行a1.setName("aa");的时候,this指的是a1,当执行a2.setName("bb");的时候,this指的就是a2,谁调用了这个类的成员,那么this就是值得这个对象
作者:
黄锦成
时间:
2012-12-24 11:50
被private修饰的方法和变量,只能在本类中使用。如果age不用private修饰,在其他类中可以通过“Person对象.age”访问,如果使用:
Person对象.age = 1000; 这样子,别人可以肆无忌惮地赋值,人有1000岁吗?所以把age私有化,只向外提供一个setAge方法:
public void setAge(int age){\
if(age>=1 && age<=150){//假设一出生就是1岁,在合理范围内,才设置
this.age = age;
}else{
System.out.println("小于1岁/大于150岁的你,是一个妖怪啊");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2