목록분류 전체보기 (231)
코딩 기록들
자바의 추상화 1. 추상 클래스 2. 인터페이스 추상클래스 & 인터페이스 : 인스턴스 생성 불가능 (구현되지 않은 메소드가 있기 때문) -> 추상클래스 : extends (상속받아서) 구현 / 인터페이스 : implements 구현 -> 구현 이후 클래스로 만들어줘야 -> 인스턴스 생성할수 있게 됨 3. 익명클래스 : 한번 쓰고 안쓸것들을 만드는 용도 익명클래스 - 추상클래스, 인터페이스를 강제로 인스턴스화 시키는 방법 - 사용하는 이유 : 한번쓰고 안쓸건데, 클래스 복잡하게 만들기 싫어서 - 언제쓰면 좋을까? : 단 한번 사용할 인스턴스 만들 때 사용 - 이름이 없는 객체를 말함 -> 단독으로 생성할 수 없고 클래스 상속하거나 인터페이스 구현해야만 생성할수있다 순서 1. 익명 자식 객체 생성 방법1) ..
추상화 - 추상의 사전적 의미 : 여러가지 사물이나 개념에서 공통되는 특성이나 속성따위를 추출하여 파악하는 작용 + 사물을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출 & 파악하는것 (=클래스), 그 때 다른 성질을 배제하는 작용인 사상을 수반하므로 추상과 사상은 동일작용의 두 측면을 형성함 ex) 여러것들을 가져와서 다른것, 같은것을 뽑아내어 따로 정리해서 빼놓음 -> 공통된것들은 써두고(추상클래스), 다른것들은 어떻게 쓰일지 모르니 비워둠 (실무에서는 추상클래스 잘 쓰지 않는다) 추상클래스 - 어떤기능의 공통부분은 모두 구현해놓고(추상), 다른부분들만 구현하지 않은 (사상)메소드가 있는 클래스 구현하지 않은 메소드= abstract method 구현하지 않은 클래스 = abstract class..
다형성(Polymorphism) 객체지향프로그래밍의 4가지 특징 중 하나 1. 캡슐화 - 여러 기능을 메소드(캡슐)로 묶어 처리한다. 2. 추상화 - 기능의 정의만 존재하고 구현은 하지 않는다 3. 다형성 - 상속 및 구현 대상(부모클래스) 타입에 포함되는 것을 허가한다. (=IS A 관계가 허용된다) - 즉, 하나의 타입으로 여러가지 타입을 표현할 수 있다. 4. 상속 - 부모클래스의 모든 속성, 기능을 확장한다. ++ 정보은닉 (멤버변수를 보호시킴) 다형성을 구현하기 위해서는 : 1. 메소드 재정의 , 2. 타입변환 이 필요함 자동타입변환 - 프로그램 실행 도중 자동으로 타입변환이 일어나는것 [ 자동타입변환의 조건 ] 부모타입변수 = 자식타입; - ex) Animal 부모클래스, cat 자식클래스(A..

상속 - Inheritance : 상속/계승 / "확장" - A클래스를 상속(계승)해 B클래스를 만드는것 - Java에서 상속은 extends로 표현함 - 상속을 사용하는 예 : 하나의 클래스를 확장해 다양한 클래스를 만들어내기 위함 (멤버변수 혹은 인스턴스 메소드 추가) package vending_machine_explain; /** * 자판기에서 판매할 상품의 정보 (데이터클래스) */ public class Product { /** * 상품의 이름 */ String name; // 정보안주면 null 할당됨 /** * 상품의 가격 */ int price; // 정보안주면 0 할당됨 /** * 상품의 재고 (수량 관리 위함) */ int quantity; public String getName() ..
자바에서 작성하는 변수나 메소드, 클래스, 인스턴스, 생성자 등은 유일한 이름으로 구분해야함 ( 변수 중복선언, 메소드 중복선언은 할수없음) 만약, 강제로 선언하면 아래와같은 에러발생 Duplicate field 클래스명.변수명 Duplicate method 메소드명() in type 클래스명 단, 메소드 오버로딩 기법으로 동일한 이름의 메소드를 정의하고 사용할 수 있음 메소드오버로딩 - 같은이름의 메소드를 여러개 만들 수 있음) - 클래스 내에 같은 이름의 메소드를 여러개 선언하는 것 기준 : 1. 메소드 명 동일, 2. 파라미터의 개수 / 파라미터의 타입 / 순서 중 하나가 달라야 함 (리턴타입은 무관) 생성자 오버로딩 - 생성자도 메소드이기 때문에 오버로딩이 가능함 - 매개변수를 달리하는 생성자를 ..

- 같은 타입의 많은 양의 데이터를 다뤄야 할 경우 사용 - 동일한 타입의 값들을 메모리에 차례대로 나열시킨 구조 - 같은 타입의 데이터만 저장할 수 있음 - 선언과 동시에 저장할 수 있는 데이터 타입이 결정됨 - 한번 생성된 배열은 길이를 늘이거나 줄일 수 없음 1. 배열 선언 방법1) type[] 변수; ex) int[] intArray; 방법2) type 변수 []; ex) int intArray[]; - 배열변수는 참조변수에 속함 -> 참조할 배열객체가 없다면 배열변수는 null로 초기화됨 --> 하지만, 만약 null 인 상태에서 변수[인덱스]로 값을 읽거나 저장하면 NullPointerException발생함 (-> 배열변수는 배열을 생성하고 참조하는 상태에서 값을 저장하거나 읽어야함) 2.1 ..
String은 Java 내장 클래스! -> 따로 import 작성하지 않아도 사용이 가능함(Integer 처럼 java.lang패키지에 있는 클래스이기 때문) String Concatenation - 문자열과 문자열을 연결하려면 + 연산자 사용 - 문자열 연결의 특징 : 문자열 + 모든 타입의 결과는 문자열이 됨 - 대량문자열 연결하기 : 자바15 이상 -> """ 문자열 """ 처럼 따옴표 3개 쓰는 멀티라인 문자열 사용 - 문자열은 Refernece Type이므로 항상 메모리를 참조함 Reference Type은 두가지 타입으로 구분됨 Immutable - ex)String : 메모리내의 값이 절대 변경될수없음 Mutable : 메모리 내의 값이 자유롭게 변경될 수 있음 p327 내용추가 - Stri..

String - 문자열을 할당할수있는 Java의 내장 클래스 - 문자열을 간편히 제어할 수 있도록 많은 인스턴스 메소드를제공 ex) String name = "": name+ "." 누르면 contents assist 창이 나옴 String은 생성자 없이 데이터를 할당 할 수 있다 String 인스턴스에 값을 할당할 때, 생성자를 사용하지 않는다.( Java에서 아주 많이 사용되므로, 간편히 사용할 수 있도록 JVM이 지원하고 있기 때문) 자주 사용하는 String methods 파라미터2 없다면 '끝'까지 라는 의미, (파라미터2값은 인덱스+1 주의) trim | Instance | - | - | 문자열 좌 / 우 공백제거 - trim 사용 예시 "공백 ID 공백".trim() -> "ID" " 공백 ..