java 构造方法
//创建student类
package cn.edu.hpu.test2;
public class Student {
private String name;
private int age;
private String hobby;
/*
* 使用private修饰后,不能再被其他类访问
* 用setter方法赋值,getter方法取值
* 可以在方法中加入条件,控制属性值,避免被赋予取值范围外的错误的值
* */
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
if(age>=0 && age<=150) {
this.age=age;
}
else{
this.age=21;
System.out.println("age is wrong! default is 21");
}
}
public int getAge() {
return age;
}
public void setHobby(String hobby) {
this.hobby=hobby;
}
public String getHobby() {
return this.hobby;
}
public void printHobby()
{
System.out.println(name+" like "+hobby);
}
public void print()
{
printHobby();
}
public Student(String name) {
this.name=name;
/*构造方法,使创建这个类时可以用参数赋值*/
}
public Student(String name,String hobby,int age) {
/*重载,方法名相同,但形参列表不同*/
this(name);
/* 调用构造方法,每个方法中只能有一次,并且在第一行 */
this.hobby=hobby;
this.age=age;
}
}
实例化一个Student类的对象,通过输入作为参数,赋值给对象的属性
package cn.edu.hpu.test2;
import java.util.Scanner;
public class TestStudent {
public String inputName(Scanner input) {
System.out.println("who:");
String name=input.next();
return name;
}
public String inputHobby(Scanner input) {
System.out.println("what:");
String hobby=input.next();
return hobby;
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
/* Scanner扫描输入内容,input.next(),next()方法,将扫描的内容作为String类型的数据
Scanner对象只能有一个,关闭也只能有一次
*/
TestStudent test1=new TestStudent();
String name=test1.inputName(input);
String hobby=test1.inputHobby(input);
Student stu1 = new Student(name,hobby,21);
stu1.print();
input.close();
}
}