비전공개미 개발노트
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
'프로그래밍 > Java' 카테고리의 다른 글
Java - [문제풀이]배열을 사용하지 않고 if문으로 숫자정렬 (0) | 2022.09.22 |
---|---|
Java - [문제풀이]로또번호생성 (0) | 2022.09.22 |
Java 5일차 - 부모클래스접근, 상속, this, Overriding, OverLoading, final클래스, private, protected, public (0) | 2022.09.22 |
Java 4일차 문제풀이 - 배열, static, 기본생성자, 지역변수, 전역변수, 가변매개변수 (1) | 2022.09.21 |
Java 4일차 - 배열 (0) | 2022.09.21 |
Comments