关于this的使用和封装就是在我们要限制我们要用的数的范围以免误输入。

对信息的封装就是要求使用者按照规范的使用数据。

关于this的使用

this是调用当前的this是代表一个对象,谁(对象)调用的方法,this就代表谁
在这里插入图片描述
先创建对象,student是一个变量,是用来储存对象的首地址,在student.name中是先在java中jvm中识别首地址在找到对象的,在调用dohomework中this就代表当前对象,在main中已经对name进行赋值,则在dohomework中的this.name是指的是Student对象中的那么则为Tom正在写作业。
在这里插入图片描述

String name;
		
void doHomework(){
			System.out.println(this);
			System.out.println(this.name+"正在做作业.......");
		}

void speak(){
//			new Student().doHomework();和下面一样都是创建对象;
			Student stu =new Student();
			stu.doHomework();
			this.doHomework();
			System.err.println(this);
			System.out.println(name+"正在说话......");
		}
			public static void main(String[] args) {
			Student student = new Student();
			student.speak();
		}

解:此运行代码为在main方法中,创建了一个对象,在调用speak()函数,在speak中有创建了一个对象,在调用doHomework对象,则这其中的this的指向为,调用当前方法的对象,第一个输出this是指的是刚创建的stu对象所指的内容,因为是stu调用的dohomework(),其中的this是指调用当前方法的对象,则首先this先代表stu,接下来是this.dohomework();这个this是指调用speak()函数的对象,接下来在调用domework();则这里的dohomework()中的this也是与speak()同一个对象;则通过结果可以看出。

在这里插入图片描述

int age;
	String name;

public Student(int age) {
		
this.age = age;
		System.out.println(this);
	}
	public Student(String name) {
		this.name = name;	
	}
	public Student(int age, String name) {
		this(age);//this是指有一个对象);
		System.out.println(this);
//		this(name);
//		new Student(name);
//		System.out.println();
		System.out.println(new Student(name).name);//只是调用第一种构造方法直接对name赋值。调用第二种方法对name进行赋值则,为王五。
		System.out.println(new Student(name).age);//只是调用第二种构造方法对age赋值,第二种方法只对name进行赋值但对age则没有
		//进行赋值则原来的值还为0.
		
	}
	public static void main(String[] args) {
		
		Student student=new Student(12, "王五");
		System.out.println(student.name+" "+student);
		System.out.println(new Student(12, "王五").age);

		
	}
		 

这个其中的代码运行为创造了一个对象调用构造函数第三个构造函数方法,在第三种构造方法中运行this(age);调用第一个构造方法,其中的this创建第三种构造方法的对象,this(age)是调用第一种构造方法,其中的this和第三种的this是指的同一个对象,测试结果显示student的地址和创建的第三种的地址和第二种的地址是一样的。

1,所以this就是调用当前方法的对象。
2,在构造函数中不能在普通成员方法中调用构造函数会出现错误。
3,在构造函数中只能调用一个构造函数,因为构造函数只能放在方法的首位代码块。

4,this 不能用于静态方法中,因为可能没有调用对象,直接用类来调用对象,就没有this所调用的对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值