2022. 1. 17. 10:53ㆍksmart_Java/Java
목록
01 생성자메서드 오버로딩
02 static 정적키워드 - 변수와 메서드에 static
03 상속
- 메서드 오버라이딩
04 추상클래스와 추상메서드
05 interface (인터페이스)
- 상수와 추상메서드를 갖는다.
01 생성자 메서드 오버로딩
public int test(int a) {
return 0;
}
public void test(int a,int b) {
}
User u01=new User();
User 클래스를 통해 생성된 u01 객체참조변수를 선언한다.
u01.setUid("id003");
String result=u01.getUid();
//default 생성자 메서드 선언
public User(){}
public User(String uid,String upw){
this.uid=uid;
this.upw=upw;
}
처리과정에 들어가면 User u01=new User("","");
바로 입력 할 수 있는 상태가 된다.
객체내의 데이터영역에 세팅 가능
생성자 메서드 오버로딩이 객체를 생성하면서
데이터영역에 객체를 생성할 수 있는 유일한 방법
각각을 호출해서 세팅한 걸 한방에 세팅 가능
디폴트생성자 메서드 선언 해주어야한다.
02 static 정적 키워드 - 변수와 메서드
새로운 객체를 생성하면 초기값이 0인 상태
total 변수가 static(정적으로 한곳에 고정) 으로 선언되어있으면 객체 내부에 존재하는것이 아닌 특정 메모리공간 한 곳에 고정되어있다.
클래스명.변수에 값을 세팅 가능하고 객체참조변수 b01.total =10 으로 값을 입력하면 모든 total 값이 10으로 변경된다.
package kr.or.ksmart.Static;
public class AA01 {
public static void main(String[] args) {
BB01.test();
BB01 b01 = new BB01();
BB01 b02 = new BB01();
System.out.println(b01.total + "<-- b01.total");
b01.total = 20;
System.out.println(b02.total + "<-- b02.total");
BB01.total = 30;
System.out.println(b01.total + "<-- b01.total");
System.out.println(b02.total + "<-- b02.total");
System.out.println(BB01.total + "<-- BB01.total");
}
}
package kr.or.ksmart.Static;
public class BB01 {
int a = 0;
int b = 0;
static int total = 10;
public static void test(){
System.out.println("static메서드 test 실행");
}
}

03 상속 - 메서드 오버라이딩
2022.01.17 - [SW개발/Java] - 메서드 오버라이딩_java
메서드 오버라이딩_java
메서드 오버라이딩이란 상속관계에 있는 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 같은 시그니쳐를 갖는 메서드로 다시 정의하는것 메서드 오버라이딩이란 상속받은 부모 클래
moon09-developer.tistory.com
메서드가 유사한 경우에 사용
부모클래스로부터 상속받은 클래스가 있다면 메서드 동작 처리과정 선언
그 선언된 내용이 메서드 오버로딩 하나의 클래스 내에서 메서드 오버라이딩 상속관계가 반드시 들어가야함
부모의 어떤 동작이 자식에게 물려줬는데 부모의 메서드를 그대로 쓸 수 있고 변형해서 쓸 수 있다.
변형해서 사용하는걸 메서드 오버라이딩이라고 한다.
메서드오버로딩
입력받을 개수 데이터타입 다르게
메서드 오버라이딩
입력받을 개수 데이터타입 그대로
메서드 처리과정의 일부 변경
04 추상 클래스와 추상 메서드
//일반 메서드 선언
public void test(){
}
//메서드 호출
test();
//추상 메서드 선언 - 바디 없어짐
public abstact void test();
//추상 클래스 내 : 추상메서드 선언 가능, 일반 메서드 선언 가능
abstract class Test{
abstract void test();
}
자식 클래스에서 반드시 오버라이딩 해야만 사용할 수 있는 메서드
생산성이 향상되고 배포등이 쉬워진다.
작성되엉있지 않은 바디 부분을 자식 클래스에서 오버라이딩하여 사용
abstract class Animal{abstract void cry();}
class Cat extends Animal{void cry(){System.out.println("냐옹");}}
class Dog extends Animal{void cry(){System.out.println("멍멍");}}
public class Polymorphism{
public static void main(Strin[] args){
Cat c = new Cat();
Dog d = new Dog();
}
}
구현(implements) - 중괄호 열고 닫고 처리과정이 없으니 처리과정만 채워넣는개념
오버라이딩 기존 상속 개념과 똑같다.


CC01 클래스는 새로운 객체를 생성 할 수 없다.//abstract 클래스여서
05 interface ( 인터페이스 )
interface 내에 추상 메서드 선언 할 때 abstract선언 메서드가 없어도 추상 메서드로 자동 인식
CC01과 BB01 의 공통적 특성
- Testable01 interface로부터구현을 명령받은 cc01 클래스에서는 Testable01 interface 내에 있는 test01 추상 메서드를 구현해야 한다.
- 하나의 interface로부터 구현을 명령받는 클래스가 n개가 된다.
- test01 기능이 bb01 cc01 포함해서 n개의 클래스에서 필요하다면 testable01 interface로부터 구현을 명령을 여러가지에 시킬 수 있다.
- interface간의 상속개념 또는 다중 interface로부터 구현 명령을 시킬 수 있다
- interface는 하나인데 구현을 명령시킬 클래스가 여러가지라면
--->interface에서 추상적으로 실행
//객체참조변수 선언
User u = new User();
//객체참조변수 하나 선언으로 interface로 구현을 명령받은 클래스 n개 할당 가능
interface data type 으로 Testable01 test;
test = new BB01();
test = new CC01();
'ksmart_Java > Java' 카테고리의 다른 글
메서드 오버라이딩_java (0) | 2022.01.17 |
---|---|
입력처리_java (0) | 2022.01.17 |
setAttiribute_getAttribute메서드 사용법_Object_data_type_Java (0) | 2021.12.16 |
jsp 문법 구조_JAVA (0) | 2021.12.16 |
Setters_Getters_Java (0) | 2021.12.16 |