java基础(5)封装与构造方法

1、封装

java中的封装

  1. 方法
  2. private关键字

1.1、private关键字

private int age;

本类之外的范围不能直接访问private
间接访问方法:定义一对Getter/Setter方法

此方法来设置private成员变量的数据,外部传参给这个方法

public void setAge(int num) {
	age = num;
}

此方法获取private成员变量的属性,外部接受这个方法的返回值

public int getAge() {
	return age;
}

注意:

  1. 方法名必须为setXxx或getXxx
  2. Setter不能有返回值,Getter不能有参数
  3. 可以在set方法中添加if条件控制参数的传递
  4. 对于boolean类型的private变量,Getter方法名一定为isXxx,setXxx规则不变

1.2、this关键字

当方法的局部变量和类的成员变量重名的时候,根据“就近原则”,优先使用局部变量。
如果需要访问本类当中的成员变量,需要使用格式:
this.成员变量名

通过谁调用的方法,谁就是this

public class Demo01Person {

    public static void main(String[] args) {
        Person person = new Person();
        // 设置我自己的名字
        person.name = "LC";
        person.sayHello("CL");

        System.out.println(person); // 地址值
    }
}
public class Person {
    String name;

    public void sayHello(String name) {
        System.out.println(name + ",你好。我是" + this.name);
        System.out.println(this);	// this的地址值与person相同
    }
}
CL,你好。我是LC
cn.itclass.day04.demo05.Person@b1bc7ed
cn.itclass.day04.demo05.Person@b1bc7ed

2、构造方法

用于创建对象的方法,通过关键字new来创建对象时,就是在调用构造方法
方便将现成的数据通过参数的形式设置进来,而省去多次调用setXxx方法
setXxx方法就用于修改私有对象内容
格式:public 类名()
注意:

  1. 类名与所在类名完全一样
  2. 不要写void和返回值
  3. 不能产生返回值
  4. 不手动构造方法时,编译器默认构造一个无方法体的构造方法
  5. 构造方法也可重载(方法名相同,参数列表不同)
public class Student {
	
	private String name;
	private int age;
	
	public Student() {
		System.out.println("执行构造方法");
	}
	// 全参数的构造方法
	public Student(String name, int age) {
		System.out.println("全参构造方法执行");
		this.name = name;
		this.age = age;
	}
	
	// Getter/Setter类
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return name;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getAge() {
		return age;
	}
	
}
public class demo02Student {
	public static void main(String[] args) {
		Student stu1 = new Student();	// 无参构造
		System.out.println("==============");
		Student stu2 = new Student("LC", 20); // 全餐构造
		System.out.println("姓名:" + stu2.getName() + ",年龄" + stu2.getAge());
		
		// 若需要改变对象中的成员变量数据内容,仍需使用setXxx的方法
		stu2.setAge(21);
		System.out.println("姓名:" + stu2.getName() + ",年龄" + stu2.getAge());
		
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值