목록Java (22)
개발 한번 해블로그

1. Object 클래스를 이용하여 객체 생성하기 어떤 클래스를 한 개를 만들면 기본적으로 생략된 코드 1) default package : import java.lang*; 2) 최상위 클래스 : java.lang.Object 3) default 생성자 : public A(){ super();} - 클래스 이름과 메서드 동일 - return 타입 쓰면 안됨 - 생성자안에 super(); 생략 2. Object 클래스를 활용한 다형성 적용 1) 다형성인수 public class ObjectPoly_04 { public static void main(String[] args) { A_04 a=new A_04(); display(a); B_04 b=new B_04(); display(b); } private..

1. 다형성을 보장한다는 의미는 무엇인가? 상위클래스가 명령을 내리면 하위클래스가 반드시 동작(반응)을 해야 한다. 오버라이드를 하지 않으면 다형성이 보장 안된다 다형성을 보장하려면? 다형성 전제 조건(상속, 오버라이드, 업캐스팅, 동적 바인딩) 반드시 재정의가 되어야 한다 상위클래스를 추상 클래스로 만든다 추상 클래스는 메서드의 구현부가 없는 것, 반드시 하위 클래스가 완전하게 오버라이드 public abstract class Animal02 { public abstract void eat(); //추상메서드(불완전 메서드) : 메서드의 구현부가 없음 public class Dog02 extends Animal02 { //추상메서드 // 재정의를 안함 -> 에러 // 재정의를 해야함 -> 바디를 만들어..

1. 다형성이란 무엇인가? - 다형성(message polymorphism) : 상위클래스가 동일한 메시지로 하위클래스를 서로 다르게 동작시키는 객체지향 이론 - 즉, 예시로 부모가 eat이라고 dog/cat 자식에게 메시지를 보내면 자식 클래스가 서로 다르게 개/고양이처럼 먹다라고 출력 - 다형성이 실행되려면 상위 클래스가 명령을 내려야하기 때문에 업캐스팅을 해야 함 ex) Animal x=new Dog(); x.eat(); // 개처럼 먹다 -> 확장, 유지보수 쉬움 2. 다형성 이론을 설명하기 위한 전제조건 - 상속 관계 - override(재정의) - Upcasting(업캐스팅) - 동적 바인딩 import fc.java.model.Animal02; import fc.java.model.Cat02..

상속 관계에서의 형 변환에 대해 알아보자 이전에 한번 casting에 대해서 포스팅한 적이 있고 같은 원리라고 생각하면 된당 ㅎㅎ! 1. 부모와 자식 간에 형 변환이 된다 - 부모는 여러 명의 자식을 가리킬 수 있다 - 부모를 알면 자식들을 관리하기 쉽다 1) 업캐스팅(Upcasting) - 부모와 자식이 상속 관계일 경우 자료형이 다르더라도 부모 타입으로 자식들을 가리킬 수 있음 2) 다운캐스팅(Downcasting) - 다운캐스팅 : 상위클래스의 타입을 하위클래스의 타입으로 바꾸는 행위 - 강제형변환임 - 부모가 특정 자식으로 갈 때는 자식 타입으로 바꿔야함 자식A c=(자식A)부모; - 무조건 다운캐스팅이 되는 것이 아니라, 업캐스팅이 되어야 가능함 import fc.java.model.Animal..

1. 동작측면에서 클래스 설계하기 클래스를 동작하는 측면에서 상속(수평적 구조를 수직적 구조로 만들기) public class Cat02 { public void night(){ System.out.println("밤에 눈에서 빛이 난다"); } public void eat() { System.out.println("고양이처럼 먹다"); } } public class Dog02 { public void eat(){ System.out.println("개처럼 먹다"); } } import fc.java.model.*; public class DogCatTest02 { public static void main(String[] args) { //Dog 객체를 생성하고 eat()동작을 구동 Dog02 d=ne..

자바계의 상속자들(지금 공부하는 것도 드라마처럼 조금이나마 더 흥미있었으면 한다 ㅎㅎㅎ,,,) 일단, 상속이란 기존의 클래스에 기능을 추가하거나 재정의하여 새로운 클래스를 정의하는 것이다. 1. 수평적 구조와 수직적 구조의 설계 방법(자바에서 상속이란?) - 자식과 부모는 상속 관계이기 때문에 자식은 부모의 것을 얼마든지 사용 가능 - 즉 상속이란, 부모가 자식들에게 자신의 것을 사용하라고 허락해주는 것 1) 수평적 구조 일반 사원 관리 사원 비서 일용직 이름, 나이, 전화번호, 주소, 입사일, 근무부서 이름, 나이, 전화번호, 주소, 입사일, 근무부서 + 관리부서 이름, 나이, 전화번호, 주소, 입사일, 근무부서 +상급자 이름, 나이, 전화번호, 주소, 입사일, 근무부서 +고용기간 - 코드의 중복 발생..

static과 JVM 다 들어본 단어인데~~ 초짜들에게는 들어도 다시 까먹게 되는 magic 그래도 나는 잊지않음(아마도) 1. static과 메모리의 관계 메인(시작) 클래스는 왜 객체 생성 없이(new ~~) 실행될까? → 메인클래스가 동작되는 방식을 이해해야지 알 수 있다 1) JVM이 실행할 클래스를 찾는다 → 찾았다면?! 2) static 키워드가 붙어있는 멤버들을 정해진 메모리(static zone) 위치에 한번 자동으로 로딩 - 여기서 static 멤버들은 클래스를 사용하는 시점에서 딱 한번 메모리에 로딩된다 3) JVM이 static zone에서 main() 메서드를 호출 4) 호출된 메서드를 Call Stack Frame Area(Stack Area)에 push(기계어코드를 넣고) 한 뒤..

저번에 배열 관련해서 한번 게시물을 업로드한 적이 있었는데 난 아직 그때까지도 이질적인 구조, 동일한 구조 오케이 그럼 다 같은 배열은 아닌걸 알겠는데 왜 배열이 아니라고 하는거지?라는 의문을 가지고 있었다 ㅎㅎㅎ... 이번 강의를 통해서 차이점을 알게되었음! 1. 배열과 클래스의 차이점 둘 다 데이터를 담는 역할은 공통점이지만 만들어지는 구조가 다르다! 1) 배열 - 동일한 데이터를 담는 동일한 구조 - 예를 들어 10, 20, 30, 40 등 동일한 정수 데이터가 있으면 배열 생성시 int[] a=new int[4]; 로 생성 가능 2) 클래스 - 서로 다른 데이터를 담는 이질적인 구조 - 예를 들어 Book 만든 것처럼 이름, 나이 전화번호, 성별 등 string, int 등 이질적인 데이터들이 존..