새소식

💻 Computer/🦀 Java

Java this 와 super

  • -

오늘은 Java의 this와 super에 대해 알아보려고 한다

 


This

 

public class Main {
	public static void main(String[] args) {
		Person p = new Person(12, "tom");
		p.hi("hana");
        
        
        // 출력
		// method : hana
		// this : tom
	}
}

class Person {
	int age;
	String name;

	public Person(int age, String name) {
		this.age = age;
		this.name = name;
	}

	public void hi(String name) {

		System.out.printf("method : %s\nthis : %s", name, this.name);
	}
}

this는 클래스안에 있는 멤버 변수 또는 함수를 말한다

this가 쓰이는 곳은 함수안의 매개변수와 클래스 안에 멤버 변수의 이름이 동일할 때 사용한다

 

 


Super

 

 

public class Main {
	public static void main(String[] args) {
		Person p = new doctor(22, "Jinsu", 173);

//		출력
//		method : haha
//		this : Jinsu

	}
}

class Person {
	int age;
	String name;

	public Person(int age, String name) {
		this.age = age;
		this.name = name;
	}

	public void hi(String name) {

		System.out.printf("method : %s\nthis : %s", name, this.name);
	}
}

class doctor extends Person {
	int height;

	public doctor(int age, String name, int height) {
		super(age, name);
		super.hi("haha");
		this.height = height;
	}

	public void hi() {
		System.out.println("hi");
	}
}

 super은 자신이 상속된 클래스를 말한다

 

Class doctor은 생성자로 age, name, height를 받는데 super(age, name)을 사용

age와 name은 부모 생성자로 보내 멤버 변수에 저장하였다.

 

이렇게 하는 이유는 코드를 간략화할 수 있기 때문이다.

 

그리고

super.hi("haha")는 

부모 클래스의 hi를 가리킨다

 

 

 

'💻 Computer > 🦀 Java' 카테고리의 다른 글

[Java] String을 자세히  (1) 2022.07.22
[Java] Arrays.asList()은 무엇인가  (0) 2022.07.21
(Java) 다형성  (0) 2022.07.03
java 숫자인지 판별  (0) 2022.07.02
인력 관리소 문제 (java)  (0) 2022.07.02
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.