This关键字相关知识点Java

public class Test{
public static void main(String args[]){
int age=10;
String name="李四";
Student stu=new Student(name,age);
System.out.println("student属性name:"+stu.name+"age"+stu.age);
}
}
class Student{
String name="张三”;
int age=18;
System.out.println("传入的name:"+name+"age"+age);
}
}
此时会输出 李四 10
          张三  18
这时候我们发现在构造方法时name,age没有设置成功
怎末解决这个问题,引入this 关键字
成员变量就是对象的属性
public class Test{
int age=11;
public static void main(String args[]){
int age=10;//属于局部变量
}
}
class Person{
String name;
int age;//Person类的成员变量
}
this 指的是自身,this.属性访问的是自己的属性

this()访问的就是自己的无参构造方法
classPerson{
String name;
public Person(String name){
this.name=name;}//this.name表示自身的name属性
public class HelloWorld{
public static void main(String args[]){
Person p=new Oerson("张三“);
System.out.println(p.name);
}
}
class Person{
Stering name;
public Person(){
System.out.println("I am");
}
public Person (String name){
this();//调用构造方法只能写在第一行
this.name=name;
}
}
此时会输出张三
如果改为name=name;
结果会输出null
this()会调用Person自己无参构造方法
this.name访问的是Person对象的name;



编程要求

右侧编辑器中已经编写好了代码,但是输出结果不能让我们满意,请根据所学知识修改代码,使其能输出如下结果: name:baby age:45 sex:女

测试说明

测试输入: baby45 预期输出: name:baby age:45 sex:女

package step3;

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String name = sc.next();
		int age = sc.nextInt();
		String sex = sc.next();
		Person p = new Person(name,age,sex);
		p.display();
	}
}

class Person{
	String name = "张三";
	int age = 18; 
	String sex = "男";
	/********** Begin **********/

	public Person(String name,int age,String sex){
		//this();//由于没有Person的无参构造方法,所以不再用this();

        this.age=age;

		this.name = name;
		this.sex = sex;
	}
	
	public Person(int age){
		this.age = age;
	}
	
	public void display(){
		String name = "李四";
		int age = 11;
		String sex = "男";
		System.out.println("name:" + this.name);
		System.out.println("age:" + this.age);
		System.out.println("sex:" + this.sex);
	}


	/********** End **********/
}

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值