자바 개념 정리

이연희·2022년 1월 28일
0

Java

목록 보기
2/2

오버로딩(Overloading)

  • 기존에 없던 새로운 메서드를 정의
  • 리턴값만 다르게 갖는 오버로딩은 작성할 수 없음
public class Member{
	void test(){
    	Stsytem.out.println("no parameters");
    }
    void test(int a, int b){
    	System.out.println("a:"+a+"b:"+b);
    }
}
public class codeTest{
	public static void main(String[] args) throws Exception{
    	Member m = new Member();
        m.test()
        m.test(1,2);
    }
}

오버라이딩(Overriding)

  • 상위 클래스에게 상속 받은 메서드를 하위 클래스가 재정의해서 사용
public class codeTest{
	public static void main(String[] args) throw Exception{
   		Seller s = new Seller();
        s.sellerName = "YeonHee";
        s.goodsName = "Nintendo";
        s.print();
    }
}
public class Good{
	public String goodsName;
    public void print(){
		System.out.println("GoodName:"+this.goodsName);
	}
}
  • print() 메서드 재정의
public class Seller extends Goods{
	String sellerName;
   	public void print(){
    	System.out.println("GoodName:"+this.goodsName);
        System.out.println("SellerName:"+this.sellerName);
    }
}

상수 final

  • 초기화 방식: 1) 선언시 값 지정 2) 생성자를 통해서 초기화

final 필드

  • final 필드는 초기값이 저장되면 최종적인 값이 되어 프로그램 도중에 수정할 수 없다.
final int num = 1;

final 객체

final Member meber = new Member();

final 메서드

  • 상속받은 클래스에서 부모의 final 메서드 재정의 불가능
class Member{
	String name ="yeonhee";
	public final void print() {
		System.out.println("이름은 :"+name+" 입니다.");
	}
}
class Person extends Member{
	String name = "yeonhee";
   	//메서드 오버라이드 불가
    public void print(){}
}

메서드 파라메타에 final 사용

  • final 파라메타의 변경이 불가능
class Member{
	String name ="yeonhee";
	public void setName(final String name) {
		this.name = name;
	}
}
class Person extends Member{
	Member member = new Member();
    member.setName("jeauk");//final 파라메타 변경 불가능
}
profile
공부기록

0개의 댓글