어려울 거 같아서 미뤄뒀던 프로그래밍 공부 이번에 숨 딱 참고 Java 다이브 💦
// 일반 데이터 형 배열
int[] num = new int[3];
// 일반 데이터 형 배열의 요소 할당
num[0] = 1;
num[1] = 2;
num[3] = 3;
//객체 배열
Army[] a = new Army[3];
// 객체 배열의 요소 할당
a[0] = new Army();
a[1] = new Army();
a[2] = new Army();
Unit[] unit = new Unit[3];
//배열의 요소 할당 과정에서 암묵적 형변환
unit[0] = new Army();
unit[1] = new Navy();
unit[2] = new AirForce();
for( int i = 0; i < unit.length; i++ ){
unit[i].attack();
}
if( unit[0] instanceof Army ){
Army temp = (Army)unit[0];
}
추상화(= Abstraction)는 필요한 부분, 중요한 부분을 통합하여 하나로 만드는걸 의미해요.
객체간의 공통적인 기능을 관리하기 위한 기법으로, 코드의 재사용을 통하여 프로그램의 유지보수를 편리 하게 해요.
다형성(Override, Overload)은 서로 다른 기능이지만 메서드의 이름을 공통되게 처리하여 전체 프로그램의 일관성을 유지하게 해줘요.
public abstract void a();
public abtract class A{
public abstract void b();
}
// 추상 클래스
public abstract class Hello{
// 멤버변수
private String msg;
// 생성자
public Hello( String msg ){
this.msg = msg;
}
// 일반 메서드
public String getMsg(){
return this.msg;
}
// 추상 메서드 : 선언만 되고, 구현부를 위한 블록이 존재하지 않는다.
public abstract void SayHello();
}
public abstract void A(){ .. }
public abstract void B(){ .. }
public abstract void C extends A(){ .. }
// 다중 상속 불가능
//public abstract void C extends A, B(){ .. }
public class Monster implements Fight, Move{}
public class Moster extends User impelments Fight, Move{}
추상클래스는 extends를 통하여 자신의 기능을 재정의, 확장해가는 개념이고 인터페이스는 정의된 기능들을 각각의 클래스에 맞게 기능을 구현하는 느낌으로 구별할 수 있어요.
다음 다이브에서 또 만나요 🌊
출처
https://media.giphy.com/media/l2Je1bFuOpkNpyqYM/giphy.gif
https://media.giphy.com/media/Jbb3KS22397YQ/giphy.gif