본문 바로가기

Java

[개체지향 프로그래밍] 상속 상속 상속(inheritance) 거의 모든 사람이 OOP의 핵심이라 여기는 특성 초창기 OO에서 가장 중요한 특성이라 여김 현재에도 상속을 지원하지 않으면 OO 언어라고 안 보는 게 보통 OOP의 또 다른 매우 중요한 특성인 다형성의 기반 OOP에서의 상속이란? 이미 존재하는 클래스를 기반으로 새 클래스를 만드는 방법 새 클래스는 기존 클래스의 동작과 상태를 그대로 물려 받음(유전) 그 외에 새 클래스만의 동작과 상태를 추가 가능(진화) 물론 이 새 클래스를 상속해서 또 다른 클래스를 만들 수 있음 이미 존재하는 클래스를 부르는 이름 부모(parent) 클래스 기반(base) 클래스 새 클래스를 부르는 이름 자식(child) 클래스 파생(derived) 클래스 두 클래스 간의 상속 관게를 설명하는 표현.. 더보기
[개체지향 프로그래밍] 개체 모델링 | 클래스 다이어그램 | 유연성 | OOP 개체 모델링 클래스 다이어그램의 범위 클래스가 가지고 있는 상태 상수는 클래스 다이어그램에 포함 x 클래스에 실행할 수 있는 동작의 목록(실제 구현은 보여주지 않음) 클래스 간의 관계 유연성의 두 얼굴 수십년동안 실전에 OOP를 사용하고 업계까 깨달은 것 안 유연한 클래스를 만드는 경우가 더 빈번하며 그래도 상관 없음 절대 반지는 없음 어느 정도의 유연성이 필요한지는 각 프로젝트마다 다름 OOP 공부 가이드라인 프로그래머의 기본자세를 확실히 잡을 것 읽기 명확한 코드 만들기 실수를 저지르기 어려운 코드 만들기 문제를 해결하는 코드 만들기 문제가 생기면 디버깅 하기 필요에 따라 점점 유연성을 키우는 법을 배워 나가기 더보기
[개체지향 프로그래밍] 개체 생성 | 가비지 콜렉터(garbage collector) | 생성자(constructor) 개체 생성 시 멤버 데이터의 초기화 C human_t* adam = (human_t*)malloc(sizeof(human_t)); // adam->name: 쓰레기 값 // adam->age: 쓰레기 값 // adam->sec: 쓰레기 값 printf("%d\n", adam->age); C 구조체의 변수는 선언 시 초기화가 안됨 메모리에 남아있던 쓰레기 값이 그대로 유지됨 Java Human adam = new Human(); // adam.name: null // adam.age: 0 // adam.sex: null System.out.printf("%d", adam.age); Java는 0에 준하는 값으로 초기화해 줌 int는 0 float은 0.0 참조형은 null로 public class Huma.. 더보기
[개체지향 프로그래밍] 개체지향 프로그래밍이란? | 개체지향 프로그래밍의 필요성 | 개체지향 프로그래밍 특성 Ch03. 개체지향 프로그래밍의 필요성 구조체의 한계 데이터의 비인간화 데이터가 많아지면 관리가 힘듦 실수할 여지가 증가 보완책 : 구조체 사용 한계1 : 여전히 데이터왕 동작이 분리되어 있음 한계2 : 어떤 구조체가 어떤 함수랑 연관 있는지 찾기 복잡함 사람이 세상을 인지하는 법 사람은 세상을 물체(object)의 집합으로 인지 물체는 상태를 가질 뿐만 아니라 동작도 할 수 있음 상태와 동작 상태 - 변수 동작 - 함수 모든 것이 개체는 아니다! 개체지향 프로그래밍 OOP 프로그래밍을 구성하는 기본 요소를 개체로 보려는 노력 OOP에서 프로그램이란? 상호작용하는 개체들의 집합 절차적 프로그래밍은 실행할 명령어의 목록을 프로그램으로 봤음 절차적 프로그래밍은 매우 객관적 어떤 프로그램이라도 최종적으로는 절.. 더보기
[포프 tv 복습] Java 기본 문법, Java와 C,C#의 차이 Ch02. Java 언어의 기본 문법 "Hello POCU" 출력하기 package academy.pocu; public class HelloPocu { public static void main(String[] args){ System.out.println("Hello POCU"); } } Java에서는 언제나 클래스가 필요 한 .java 파일에는 최고 레벨 public 클래스가 하나만 있어야 함 클래스 안에 다른 클래스를 넣을 수 있음 내포(nested) 클래스 내포 클래스는 public 이어도 상관 없음 main 함수는 반드시 이 시그내처대로 만들어야 함 매개변수 : String[] args 문자열 배열 커맨드 라인으로부터 받은 인자 Java에도 printf()가 있다 String name = "M.. 더보기