初学者,刚刚接触Java,请问个问题。
我有如下这个类:public class People {
public String name;
public int age;
People(){
name = "";
age = 0;
}
}假如,我现在想在这个类中添加一个方法,是获得一个人类的实例,请问可以有几种写法?
我有如下这个类:public class People {
public String name;
public int age;
People(){
name = "";
age = 0;
}
}假如,我现在想在这个类中添加一个方法,是获得一个人类的实例,请问可以有几种写法?
解决方案 »
- web应用中非spring控制类调用spring管理的javaBean?
- tomact在用MyEclipse插件debug模式启动的时候,刚启动就进入调试模式
- 求解决!
- tomcat访问不到webapps里的web项目
- hibernate 问题
- 字符集问题
- 地址传参问题
- 在学J2EE前都要学些什么
- 写SQL语句时,如何把byte[] b转换成JDBC中的BLOB?
- 求助:J2EE Container中deployed的servlet是否可以调用EJB local home?
- 关于struts2文件上传出现java.io.FileNotFoundException异常的解决办法
- 求助:mysql服务无法启动,1067错误,请大侠出手相助
一种是单例的,即每次只能获得同样的类的实例 private static People instance = null;
public static People getInstance() {
if (instance == null) {
instance = new People (); }
return instance;
}使用时People people = People.getInstance();
如果是多例 public static People newInstance() {
return new People ();
}
使用时People people = People.newInstance();
如果楼主是想不让别人在外面new的话,可以把构造函数换成private的。
还有楼主如果想问这样做和new有什么不一样,或者好处的话。可以baidu 工厂模式。
public class People {
public String name;
public int age;
People(){
name = "";
age = 0;
}
public People getPeople(String name){
//这个是通过人名获得人
People p = new People();
//去数据库里查人名,得到人的属性,然后赋值
p.name = "数据库中的人名";
......
//最后返回这个人
return p;
}
}
public staitc People getByName(String name){
People p = new People();
p.name = name;
return p;
}
是要这个吗?
不加static,就不是静态函数而是成员函数,也就意味着只能先new这个对象,才能调用。所以是否需要static关键还在于函数是用来干什么的,是需求和设计所决定的。
此外,用static声明的成员变量,不存在无法修改的说法,这个理解有偏差;不可修改是 final 。