用类名做方法的返回值类型
在学习Java的初始阶段,很多同学使用基本数据类型定义变量和引用类型定义变量以及使用类名做方法的返回值类型常常不知所以。今天我以自己的解读方式和个人的理解作一个简单的解释,和大家一起分享我对“用类名做方法的返回值类型”的基础理解,对于数据类型和引用类型定义变量等有机会的话我再胡扯一下,哈哈。
如果文中有什么说的不够透彻或有误的地方,希望大家多多包涵和指教。
先看一看下面的两个类,一个People,一个Test类:
========================People.class=============================
public class People {
privateint id;
privateString name;
privateint age;
publicint getId() {
returnid;
}
publicvoid setId(int id) {
this.id= id;
}
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name= name;
}
publicint getAge() {
returnage;
}
publicvoid setAge(int age) {
this.age= age;
}
}
========================Test.class=============================
public class Test {
publicstatic void main(String[] args) {
// ①通过实例化People来给id、name、age赋值
Peoplepe1 = new People();
pe1.setId(1001);
pe1.setName("蜡笔小新");
pe1.setAge(7);
System.out.println("pe1的ID:"+pe1.getId()+" pe1的Name:"+pe1.getName()+" pe1的age"+pe1.getAge());
// ②通过实现的方法类来给id、name、age赋值
Testte = new Test();
te.setPeople();
}
//实现方法类
publicPeople setPeople(){
Peoplepe2 = new People();
pe2.setId(1002);
pe2.setName("大头儿子");
pe2.setAge(7);
System.out.println("pe2的ID:"+pe2.getId()+" pe2的Name:"+pe2.getName()+" pe2的age"+pe2.getAge());
returnpe2;
}
}
我们看看Test类中的两个地方:
① 通过实例化People来给id、name、age赋值
② 通过实现的方法类来给id、name、age赋值,并且赋值后返回了一个People类的实体类对象pe2。
到这里我想大家应该明白了什么吧?仔细观察就能发现,①中通过实例化对象后直接赋值,而②中则通过定义一个People类型的类方法来返回一个People类的对象,该对象携带了People类实例化赋值后所包含的所有变量的值的pe2对象。
那么,到现在为止,虽然你知道了它做了什么,但是我们肯定还有所疑惑,那就是,为什么第一种赋值那么直接,为什么在实际应用中常常使用第二种呢?
答案就是“封装”,使程序结构更为清晰。其他的好处……我暂时不知道0.0