This关键字

This关键字的使用

封装性:由于类中的某些属性和方法是不能使得对所有用户可见,因此需要隐藏某些不被用户所看到的信息,就是面向对象的封装,目的是保护当前类的某些属性和方法不被外部所见,通过修饰符 private 来实现java的封装;
修饰符的作用域:
在这里插入图片描述

四种权限可以修饰类的内部结构:属性、方法、构造器、内部类。
修饰类只能是:缺省、public
封装性的体现:将类的属性XXX私有化(private),同时,提供公共的(public)方法来获取(getXXX)和设置(setXXX);不对外暴露的私有的方法;单例模式。。。
隐藏对象内部的复杂性,只对外公开简单的接口,便于外界调用,从而提高系统的可扩展性,可维护性。有利于实现高内聚低耦合。

构造器(或构造方法、constructor):用于创建对象,如果没有定义构造器,系统默认会提供一个空参的构造器,构造器和类名相同,没有返回值。New的本质是调用构造方法、初始化对象的值。定义有参构造后,如果想使用无参构造,要显示的定义一个无参构造。一个类即使什么不写也会存在一个构造器。一个类中的多个构造器彼此构成重载。
This关键字 :可以修饰或调用:方法、属性、构造器;this修饰属性和方法可以理解为当前对象或当前正在创建的对象(构造器)。
在类的方法中,我们可以使用this.属性或this.方法的方式,调用当前对象属性或方法,但是,通常情况下,我们都选择省略this;特色情况下,如果方法的形参和类的属性同名,我们必须显式的使用this.变量的方式,表明此变量是属性,而非形参。
在类的构造中,我们可以使用this.属性或this.方法的方式,调用当前正在创建的对象属性或方法,但是,通常情况下,我们都选择省略this;特色情况下,如果构造器的形参和类的属性同名,我们必须显式的使用this.变量的方式,表明此变量是属性,而非形参。
This调用构造器:
在构造器中可以显式的使用“this(形参列表)”方式,来调用本类中的其它构造器;构造器中不能通过“this(构造器列表)”来调用自己;如果一个类中有N个构造器,则最多有N-1个构造器是用了“this(形参列表)”;构造器内部,最多只能声明一个“this(形参列表)”,用来调用其它的构造器。

package question;

public class ThisTest {
	public static void main(String[] args) {
		Boy boy = new Boy();
		boy.setAge(12);
		boy.setName("Tom");
		boy.shout();
		
		Girl girl = new Girl("Marry", 18);
		boy.marry(girl);
		girl.merry(boy);
	}

}

class Boy{
	private String name;
	private int age;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public  void marry(Girl girl) {
		System.out.println("我想娶" + girl.getName());
	}
	public void shout() {
		if(this.age>22) {
			System.out.println("你们可以去领结婚证了!");
		}else {
			System.out.println("你们还小,多谈点恋爱!");
		}
}
}
class Girl{
	private String name;
	private int age;
	Boy boy = new Boy();
	public Girl(String name,int age) {
		this.name = name;
		this.age = age;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}

	public  void merry(Boy boy) {
		System.out.println("我想嫁给" + boy.getName());
	}
	//比较两个对象的大小
	public int compare(Girl girl) {
		return this.age-girl.age;
	}
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值