목록전체 글 (33)
개발 한번 해블로그

상속 관계에서의 형 변환에 대해 알아보자 이전에 한번 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 등 이질적인 데이터들이 존..

게시물 중에서 모델들이 있었는데 그럼 과연 잘 설계된 클래스는 어떤 클래스인지 알아보장 1. 정보 은닉 - 정보 은닉이란 다른 객체에서 자신의 정보를 숨기고 자신의 동작, 기능, 연산만을 통해 접근을 허용하는 것으로 클래스 외부에서 특정 접근을 막는다는 의미이다. - public : 정보은닉 X / private : 정보은닉 O 그럼 우리는 정보 은닉된 데이터를 어떻게 접근하는교? 2. 정보은닉 된 정보에 접근하는 방법 1) setter, getter 메서드를 통해서 접근 가능 - setter : 매개변수를 받아 상태정보에 저장 - getter : setter에 저장된 정보를 불러오는 것 public class PersonVO { private String name; private int age; pri..

우리는 객체 상호간에 접근을 제어할 수 있어야 한다. 예를 들어 내가 어떤 캐릭터의 정보로 라고 저장을 해놨는데 어떤 괘씸한 사람이 자격지심으로 내 티어를 아이언으로 바꿔버렸다.🤬 여기서 이름, 나이, 티어는 상태 정보라 접근을 제한해야한다. 1. 접근제어란(Acces Modifier)? 1) 클래스 간의 접근을 제어하는 것이며 객체를 보호하기 위해서 필요 - 만약 상태에 이름, 나이, 키 등이 있으면 30살을 100살로 바꿀 수 있기 때문에 접근을 제한해야 한다. - 행위에는 먹다, 놀다 등이 있으면 A가 B에게 접근을 해서 동작하게 할 수 있다. - 즉 X는 객체의 상태 정보는 중요하기 때문에 접근을 못하게 해야 한다. 이걸 정보 은닉이라고 함 - 즉 O는 객체의 행위 정보는 상호 작용을 해야 되기 ..

객체지향프로그래밍인 자바에서 클래스를 직접 만들어서 사용할 수 있다. 그 클래스를 역할에 따라 부르는 이름을 Model(모델)이라고 한다. 즉, 우리는 역할에 따라 다양한 모델을 만들어 사용할 수 있다. 우리가 클래스로 만들어서 사용하게 될 모델의 종류에 대해 알아보자. 1. 시작 클래스 - 시작 클래스는 모델의 종류에는 포함된다고할 수 없지만 우리가 많이 사용했으니 다시 짚어보자..! - 시작 클래스는 메인 메서드를 가지고 있는 메인 클래스, 시작 기능을 가지고 있는 역할 2. DTO(Data Transfer Object), VO(Value Object Model) - DTO, VO는 데이터를 담는(이동)하는 모델이다. 예를 들어 책, 영화 등 하나의 구조를 새롭게 만들어서 사용하는 것. 즉, 데이터를..