코드스테이츠_국비교육 158

14_객체지향 프로그래밍 심화(추상화)_22.09.07

학습 키워드 추상화 abstract 제어자 추상 클래스 final 키워드 인터페이스 추상화 >의미 : 기존 클래스들의 공통적인 요소를 뽑아 다른 클래스(상위 혹은 하위)를 만들어 내는 것. >abstract 제어자 : 기타 제어자 중 하나 : 추상 클래스(abstract class) 혹은 추상 메서드(abstract method)를 만드는 제어자 >추상 메서드 : 메서드 시그니처만 있고, 바디가 없는 메서드 : 추상 메서드가 포함된 것의 객체를 생성하기 위해선, 무조건 추상 메서드의 바디를 정의하는 것이 선행되어야 한다. >추상 클래스 : 하나 이상의 추상 메서드를 포함한 클래스 : 메서드 바디를 완성해야 객체 생성이 가능(구현) >추상 클래스의 목적 1. 유연한 하위 클래스의 생성 : 상위 클래스가 추..

14_객체지향 프로그래밍 심화(다형성)_22.09.07

학습 키워드 다형성 업캐스팅과 다운캐스팅 instanceof 연산자 다형성 >의미 : 하나의 객체가 여러 가지 형태를 가질 수 있는 성질 : 한 타입의 참조변수를 통해 여러 타입의 객체를 참조하는 것 : 상위 클래스 타입의 참조변수로 하위 클래스의 객체를 참조하는 것. >특징 및 장점 : 역으로는 참조할 수 없다. : 상위 클래스의 멤버만 사용할 수 있다. : 형 변환처럼 타입 변환이 가능하다. //범위가 큰 쪽으로 형변환은 자동으로, 범위가 좁은 쪽으로 형변환은 명시해야 하는 점에서 자료형 변환과 유사하다. //범위가 어느 방향이 큰 건지 생각할 것. >참조변수의 타입 변환 : 사용할 수 있는 멤버의 수를 조절하는 것 >참조변수 타입 변환의 조건 1. 상속관계에 있는 클래스에서만 변환 성립 2. 하위 ..

13_객체지향 프로그래밍 심화(캡슐화)_22.09.06

학습 키워드 캡슐화 패키지의 개념 import문 접근제어자 getter/setter 메서드 캡슐화 >의미 : 객체의 데이터(멤버)를 외부로부터 보호하는 것 >목적 데이터 보호 불필요한 외부 노출 방지 > 특징 및 장점 : 정보 은닉 및 정보 보호 : 오류 최소화 패키지 >의미 : 특정한 목적을 공유하는 클래스와 인터페이스의 묶음 : 물리적으로는 하나의 디렉토리를 의미 : 해당 디렉토리에 클래스 파일과 인테페이스 파일이 속해있음 //인터페이스는 추상화 부분 참고 >특징 및 장점 : 소스파일에 패키지를 선언하지 않으면 자동으로 unnamed package가 생긴다. : 패키지를 지정하지 않은 모든 클래스는 같은 패키지(unnamed)에 속한다. : unnamed package는 다른 패키지에서 import할..

13_객체지향 프로그래밍 심화(상속)_22.09.06

학습 키워드 상위 클래스, 하위 클래스, 상속 관계의 이해 extends 키워드 포함관계 메서드 오버라이딩 super 와 super() Object 클래스 상속 >의미 : 연관된 일련의 클래스들에 대해 공통적인 규약을 정의하기 위한 문법 요소. : 다른 기존의 클래스의 모든 멤버를 사용하며, 추가적으로 확장시킬 때 사용하는 문법 요소 >상속관계 구분 상위 클래스 : 하위 클래스를 상속하는 클래스 : 하위 클래스로 확장되는 클래스 하위 클래스 : 상위 클래스를 상속받는 클래스 : 상위 클래스를 확장하는 클래스 >상속의 특징과 장점 : 상위 클래스의 멤버를 상속받기 때문에 코드의 중복을 줄일 수 있다. : 다형적 표현이 가능하다. //다형적 표현 : 하나의 객체가 여러 모양으로 표현되는 것. //예시: A가..

12_객체지향 프로그래밍 기초2(이너 클래스)_22.09.05

학습 목표 내부 클래스의 개념 내부 클래스 특징과 장점 내부 클래스 분류 기준과 종류 내부 클래스의 종류에 따른 유효 범위와 접근성 내부 클래스 >의미 : 클래스 내에 선언된 클래스 : 개발자의 편의를 위해 연관있는 클래스를 엮은 것임. >특징 및 장점 : 코드의 단순화를 꾀할 수 있음. : 캡슐화에 유용함. : 외부 클래스의 멤버들에 쉽게 접근할 수 있음. : 심지어 외부 클래스의 private 멤버에도 접근이 가능함. //private 접근 제어자: 같은 클래스 내에서만 접근 가능 >내부 클래스의 종류 인스턴스 내부 클래스 정적 내부 클래스 지역 내부 클래스 익명 내부 클래스(생략) //변수를 인스턴스 변수, 클래스 변수, 지역 변수로 구분하는 것과 비슷 >instance inner class : 클..

12_객체지향 프로그래밍 기초2(생성자)_22.09.05

체크포인트 생성자의 개념과 기본 문법의 이해 생성자가 메서드의 차이 (두 가지의 조건) 생성자의 오버로딩 Default 생성자 this 와 this() 의 차이에 대해 설명할 수 있다. 생성자 >의미 : 인스턴스의 변수들을 초기화하는 메서드 : 모든 클래스에는 반드시 생성자가 하나 이상 있어야 한다. >new 키워드 FishBread fish = new FishBread( ); //중괄호( )가 있는것으로 보아하니 메서드구만 //저게 생성자다! : new 뒤에 따라오는 것이 참조타입이 아닌 사실 생성자이다! : new는 인스턴스의 생성을, 생성자는 생성된 해당 인스턴스의 변수를 초기화를 담당함. >조건 생성자의 이름은 클래스의 이름과 같아야 한다. 생성자의 리턴 타입 자체가 없다. (void도 안됨) >..

11_객체지향 프로그래밍 기초_22.09.02

OOP, Object Oriented Programming >객체, Object : 실재하는 모든 대상 >객체지향이론 : "실제 세계는 이러한 객체들로 구성되어 있으며, 발생하는 모든 사건들은 이 객체들 간의 상호작용을 통해 발생한다" >절차적 프로그래밍 방식 : 객체지향 프로그래밍과 반대되는 개념 : 일련의 명령어들의 나열을 통해 프로그래밍을 한다. >객체지향 프로그래밍 방식 : 필요한 데이터가 모여있고, 상태와 행위를 가진 객체를 만듬 : 이러한 객체가 서로 상호작용하며 특정 기능을 구성하는 방식 >OOP의 장점 현실 세계를 컴퓨터에 반영하기 적합함. : 실재하는 것의 기능과 속성을 객체로 반영하고, 이러한 객체들이 프로그램을 이루기 때문. 객체를 재활용하기 좋음 : 객체마다 완전하고 독립적인 기능을..

10_배열_22.09.01

배열 >의미 : 동일한 타입의 값들을 하나의 묶음으로 만든 자료 구조 >장점 : 반복문을 이용하여 모든 배열 혹은 일부 배열을 검색할 수 있음. : 동일 타입의 데이터를 저장할 때, 일일이 변수를 만들 필요가 없음. >선언 배열 타입[] 참조변수; (1) 참조변수 = new 타입[길이] // 모든 요소가 0으로 초기화. (2) 참조변수 = new 타입[] {초기화값} // 초기화 값 만큼의 배열 길이가 정해진다. (3) 참조변수 = new 타입[0]; // 빈 배열. 예시. int[] num; num = new int[3] // 길이가 3이고 배열의 요소가 {0,0,0}인 int 배열 생성 num = new int[]{1,2,3}// 길이가 3이고, 배열의 요소가 {1,2,3}인 int 배열 생성 num..

09_제어문(조건문, 반복문)_22.08.31

제어문 >의미 : 위에서 아래로 순차적으로 실행되는 코드의 흐름을 제어할 수 있음. >구분 조건문 반복문 조건문 >의미 : 제어문 중 하나 : 코드의 흐름 중 원하는 코드만 실행시키게 하는 제어문. >구분 if문 if...else문 switch문 >if문 if (조건식) { : 조건식이 참인 경우 실행됨.(=block) : 조건식이 거짓인 경우 조건문 자체를 지나침. } >if...else문 if (조건식) {...} else if (조건식) {...}: if문의 확장판 ...: 원하는 만큼 else if로 구분 가능 else {...}: else의 block은 default값으로 생각. (생략 가능) >switch문 if문과 다를게 없지만 이따금 가독성을 위해 사용할 필요가 있는 구문 switch (변..

08_Java의 기초.part(java, 변수, 타입, 문자열, 연산자, 콘솔 입출력)_22.08.30

자바의 특성 1. 운영체제에 독립적 : JRE(Java Runtime Environment)의 존재 덕분 : JRE(JVM+표준 클래스 라이브러리)가 설치된 모든 곳에서 실행 가능 2. 객체 지향 언어(OOP, Object Oriented Programming) : 모든 기능을 객체로 만들어 사용하는 특징 : 즉, 모든 기능을 다 개별의 부품으로 만들어 조립하여 하나의 프로그램을 실행하는 개념 3. 함수형 프로그래밍 지원 : 람다식과 스트림의 추가 4. 자동 메모리 관리(Garbage Colletion) : C, C++보다 개선된 점 : 가비지 컬렉터가 자동으로 메모리를 수거함 JVM의 기능과 필요성 >JVM이란 : Java Virtual Machine : 자바 프로그램을 실행시키는 도구 >JVM의 기능..