封装 保证程序安全性 ,使内部属性不被直接操作,还可以通过set方法设置属性的区间,保证数据的合法性。
package stage1;
//ctrl o 查看类中元素&方法
//可以鼠标右键 Source(Atl Shfit s) generate getters and setters 生成set和get 方法
//可以鼠标邮件生成构造方法 generate constructor using fields
public class User {
private String name;
private int age;
private String addr;
private int tel;
private boolean sex;
/**
* 建议手动写出无参构造方法
*/
public User() {
System.out.println("调用User无参构造函数输出");
}
/**
* 构造方法可以重载
*/
public User(int a) {
System.out.println("调用User有参构造函数输出");
}
/**
* 构造方法作用二,创建对象的同时初始化对象的内存空间
*/
public User(String name,int age,String addr,int tel,boolean sex) {
this.name=name;
this.age=age;
this.addr=addr;
this.tel=tel;
this.sex=sex;
System.out.println("创建对象的同时初始化对象的内存空间");
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
if(age<0||age>200) {
System.out.println("age number error");
return;
}
this.age = age;
}
/**
* @return the addr
*/
public String getAddr() {
return addr;
}
/**
* @param addr the addr to set
*/
public void setAddr(String addr) {
this.addr = addr;
}
/**
* @return the tel
*/
public int getTel() {
return tel;
}
/**
* @param tel the tel to set
*/
public void setTel(int tel) {
this.tel = tel;
}
/**
* @return the sex
*/
public boolean isSex() {
return sex;
}
/**
* @param sex the sex to set
*/
public void setSex(boolean sex) {
this.sex = sex;
}
}
package stage1;
//构造方法
//多行注释:CTRL shift /
/**
* 采用这种注释方法会在类名中显示该注释(鼠标停在第34行Day006上)
* 构造方法作用:
* 通过构造方法的调用,可以创建对象
* 创建对象的同时初始化对象的内存空间
*/
public class Day006 {
/* 构造方法
* 构造方法结构:
* {修饰符列表} 构造方法体名 (参数列表) {
* 构造方法体;
* }
* 不需要指定返回值类型
* 不需要返回值类型
* 构造方法的方法名与当前方法类名一致
* 构造方法的作用:
* *通过构造方法的调用,可以创建对象
* *创建对象的同时初始化对象信息
* 构造方法这么调用:
* new 构造方法名(实参列表)
* 有返回值 eg:new User()
* 返回值类型就是类本身。
* 当一个类中没有定义构造方法,系统默认为该类提供一个无参的构造方法
* 当一个类定义了构造方法,则系统不再提供默认的构造方法
* 建议手动构建无参构造方法
* 构建方法调用一定会在堆内存中创建对象
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Day006 dy=new Day006();
dy.doSome();
System.out.println("hello:");
//返回值类型为User
//User()为构造方法方法名
User s=new User();//调用构造函数
new User(1);
s.setName("吴迪");
System.out.println(s.getName());
//可以利用alt shift a(window正下方的块编辑进行批量改)
User s1=new User("mzy",20,"china",110,false);
System.out.println(s1.getName());
System.out.println(s1.getAge());
System.out.println(s1.getAddr());
System.out.println(s1.getTel());
System.out.println(s1.isSex());
}
public void doSome() {
System.out.println("doSome");
}
}