반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

비전공개미 개발노트

Java 5일차 - [문제풀이]전역변수, extends 부모클래스 상속, final클래스, private, protected 본문

프로그래밍/Java

Java 5일차 - [문제풀이]전역변수, extends 부모클래스 상속, final클래스, private, protected

비전공개미 2022. 9. 22. 19:12
반응형
SMALL
//AI.java
package net.bit.day22;

public class AI {
	private int IQ; //전역변수=필드(field)
	public String kind;
	
	public AI() {
		IQ = 2400;
	}
	
	public String getName() {
		return kind;
	}
	
	public void setName(String kind) { //AI ob = new AI(); ob.setName("커피");
		this.kind = kind;
	}
	
	public void display() {
		System.out.println("display 함수메소드");
		System.out.println(IQ);
		System.out.println(getName());
	}
}
//AIuser.java
package net.bit.day22;

public class AIuser {
	public static void main(String[] args) {
		System.out.println("AIuser클래스");
		AI ob = new AI(); 
		ob.setName("라떼커피");
		ob.display();
	}
}
//AIuser.java에서 AI.java의 내용을 불러온다.
[출력]
AIuser클래스
display 함수메소드
2400
라떼커피

 

 

//Father.java
package net.bit.day22;

//public final class Father -- final을 명시하면 상속을 할 수 없다
public class Father {
	//private이면 Father클래스에서만 사용가능 / Son클래스에서 상속받아도 사용안됨
	//protected접근지정자는 현재클래스, 상속자식 클래스에서도 접근가능
	//public접근지정자는 현재, 상속자식, 외부클래스에서도 접근가능
	//private int pwd = 1234; //부모의 멤버전역변수필드를 자식Son클래스로 접근해서 출력
	protected int pwd = 1234;
	
//	public static void main(String[] args) {
//		System.out.println("Father클래스");
//	}
	
	public void bank() { //non-static, 리턴값o, 매개인자x
		int money = 12;
		System.out.println("Father클래스 bank메소드");
		System.out.println("bank메소드 잔액 " + money + "억");
	}
	
	public void car() { //non-static, 리턴값x, 매개인자x
		System.out.println("아버지car");
	}
}
//Son.java
package net.bit.day22;

//java는 단일상속을 원칙으로 한다. 다중상속 명시x
public class Son extends Father {
	public static void main(String[] args) {
		Son sonny = new Son();
		//super.bank(); //this, super키워드는 static문맥에서 사용못함
		sonny.bank();
		
	}
	
	@Override //부모한테 내용이 있어야됨.
	public void bank() { //non-static, 리턴값o, 매개인자x
		//부모조상꺼 내용을 수정하면 메소드재정의 = OverRiding
		//@Override 생략가능하다.
		super.bank(); //this, super키워드는 static문맥에서 사용못함
		int money = 0;
		System.out.println("Son클래스 bank메소드");
		System.out.println("bank메소드 잔액 " + money);
	}
	
	//함수로딩 = OverLoading = 메소드중복
	public void study() {
		System.out.println("아들클래스 study메소드");
	}
	
	public void study(String language) {
		System.out.println("아들클래스 study메소드" + language);
	}
	public void study(int hour, String lang) {
		System.out.println("아들클래스 study메소드" + hour + " " + lang);
	}
}

//첫번째 자식이 Father상속
//java는 단일상속을 원칙으로 한다. 다중상속 명시x
/*
public class Son extends Father {
	public static void main(String[] args) {
		System.out.println("Son클래스");
		Son sonny = new Son();
		sonny.study();
		
		int val = sonny.bank();
		sonny.car();
		
		System.out.println("아버지비번 " + sonny.pwd);
	}
	
	public void study() {
		System.out.println("아들클래스 study메소드");
	}
}
*/
//Son.java에서 extends로 Father.java를 상속받는다.
[출력]
Father클래스 bank메소드
bank메소드 잔액 12억
Son클래스 bank메소드
bank메소드 잔액 0
반응형
LIST
Comments