JAVA 入门 15 封装 get/set 有参构造器 无参构造器 编辑器生成 成员变量和局部变量的区别
Student类
package com.heima.encapsulation; public class Student { //private 私有 只有在Student类中可以使用,外界不可以读取 private int age; //暴露出外界读取age的方法 public int getAge(){ return this.age; } //暴露出外界修改age的方法 public void setAge(int age){ if(age>0 && age<100){ this.age=age; }else{ System.out.println("你输入的age值异常"); } } }
Test 类
package com.heima.encapsulation; public class Test { public static void main(String[] args) { Student s=new Student(); s.setAge(15); System.out.println(s.getAge()); s.setAge(115); System.out.println(s.getAge()); } }
- 自动生成 get /set 方法
- (鼠标右键-----Generate----选中Getter and Setter -----ctrl+鼠标左键 选中需要创建的get/set 名称--->OK 创建完成)
- 必须提供无参构造器(默认) 也可以编辑器自动生成
- (鼠标右键---Generator---Constructor----Select None)
- 有参构造器(不是必须,可以选择)
- (鼠标右键---Generator---Constructor---- ctrl+鼠标左键选中要添加的参数 点击OK)
User类
package com.heima.JavaBean; import jdk.nashorn.internal.objects.annotations.Setter; public class User { //1 成员变量私有 private String name; private double height; private double salary; //3 必须提供无参构造器(默认) 也可以编辑器自动生成 //鼠标右键---Generator---Constructor----Select None public User() { } //4 有参构造器(不是必须,可以选择) //鼠标右键---Generator---Constructor---- ctrl+鼠标左键选中要添加的参数 点击OK public User(String name, double height, double salary) { this.name = name; this.height = height; this.salary = salary; } //2 必须提供成套的gettter和setter方法暴露成员变量的取值和赋值 鼠标右键--Generator->setter/setter 创建 public String getName() { return name; } public void setName(String name) { this.name = name; } public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } }
Test类
package com.heima.JavaBean; //测试类 public class Test { public static void main(String[] args) { //1 调用无参构造器创建对象 User u = new User(); u.setName("黑马"); u.setHeight(190); u.setSalary(1111); System.out.println(u.getName()); System.out.println(u.getHeight()); System.out.println(u.getSalary()); //2 调用有参构造器创建对象 User u1 = new User("王老五", 110, 10000); System.out.println(u1.getName()); System.out.println(u1.getHeight()); System.out.println(u1.getSalary()); } }