Java 26

[Java] Abstract, Interface

다형성(Polymorphism) 하나의 타입에 여러 가지 객체를 대입하여 다양한 실행 결과를 얻는 것 하위 클래스에서 각 함수명을 통일해서 사용 가능 객체를 부품화 시키고 유지보수 용이하다. 자동 타입 변환(Promotion) 프로그램 실행 도중에 자동 타입 변환이 일어나는 것 바로 상단의 부모가 아니더라도 상속 계층의 상위면 자동 타입 변환 가능 업 캐스팅 자식 객체가 부모 클래스 타입을 가지는 것 부모클래스 변수 = new 자식클래스(); 형태 강제 타입 변환(Casting) 부모 타입을 자식 타입으로 변환하는 것 다운 캐스팅 자식 타입을 부모 타입으로 자동 변환 후, 다시 자식 타입으로 변환할 때 자식클래스 변수 = (자식클래스) new 부모클래스(); 형태 필요한 경우 자식 타입이 부모 타입으로 ..

Java 2024.03.13

[Java] 상속, Override

캡슐화(Encapsulation) 객체의 필드, 메소드를 하나로 묶고 실제 구현 내용을 감추는 것 외부 객체는 객체 내부 구조를 알지 못하고 제공하는 필드와 메소드만 이용 가능하다. 캡슐화 사용 이유는 외부에서 객체가 손상되지 않도록 하는 것이다. 캡슐화를 위해 접근 제한자(Access Modifier)을 사용한다. 상속(Inheritance) 부모 객체의 필드와 메소드를 자식 객체에게 물려주는 것 자식 객체는 부모 객체를 확장하여 추가적인 필드와 메소드를 가질 수 있다. private가 default 접근을 갖는 필드와 메서드는 상속 불가하다. 주로 protected 사용 extends 키워드 자식 클래스가 상속할 부모 클래스를 지정하는 키워드 public class 자식클래스 extends 부모클래스..

Java 2024.03.13

[Java] 접근 제어자, 생성자, 싱글톤 패턴

접근 제어자 (Access Modifier) public 동일 패키지의 모든 클래스와 다른 패키지의 모든 클래스에서 사용 가능 protected 동일 패키지의 모든 클래스와 다른 패키지의 자식 클래스에서 사용 가능 default 동일 패키지의 모든 클래스에서 사용 가능 private 동일 클래스에서 사용 가능 (캡슐화) Getter/Setter 함수를 통하여 접근하도록 허용 생성자 함수 (Constructor) 생성자 (Constructor) 클래스 객체가 생성될 때(new로 인스턴스 생성하면) 자동으로 호출되는 메소드 public 클래스이름() { … } 형태 매개변수 없이도 만들 수 있고 오버로딩으로 매개변수를 넣어서 만들 수 있다. 호출 시에 매개변수를 주어서 초기화 가능 부모 클래스에 기본 생성자..

Java 2024.03.13

[Java] static, void, this

static 예약어 객체 생성없이 사용할 정적 변수(객체), 함수를 지정할 때 사용 ex) static int a = 100; static void make() { … } static 변수,함수는 new 인스턴스를 생성하지 않고 클래스 이름으로 바로 함수나 멤버변수 사용 가능 ex) 클래스이름.메서드이름(); 전역 변수로 클래스 가져올 수 있다. (메인 위 public static 클래스 클래스변수; 작성) 프로그램 구동시 고정된 메모리 번지에 들어가고, 프로그램 종료시까지 변경되지 않는다. 사용 이유 시작점(Entry point)를 지정할 때 사용 중요한 데이터를 안정적으로 저장할 때 주로 사용 자주 사용하는 유틸성 클래스에 지정 void 예약어 메서드를 생성할 때 return 값이 없는 경우 void..

Java 2024.03.13

[Java] 객체(Object), Class, Method

객체(Object) 객체 지향 프로그래밍 OOP (Object Oriented Programming) 부품 객체 먼저 만들고 이것들을 하나씩 조립해 프로그램을 만드는 기법 객체 (Object) 무리적으로 존재하는 것, 속성과 동작을 가지는 것 객체는 필드(속성)과 메소드(동작)로 구성된 객체로 모델링 가능 객체간의 관계 집합 관계 완성품과 부품의 관계 사용 관계 객체가 다른 객체를 사용하는 관계 상속 관계 종류 객체와 구체적인 사물 객체 관계 객체와 클래스 클래스에는 객체를 생성하기 위한 필드와 메소드가 정의되어 있다. 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다. 하나의 클래스로부터 여러개의 인스턴스를 만들 수 있다. 클래스가 붕어빵 틀이라면, 객체는 만들어지는 붕어빵..

Java 2024.03.13

[Java] Array

1차원 배열 배열의 특징 동일한 자료형만 묶어서 저장 가능 생성 시 크기를 지정, 이후 크기는 변경 불가 배열의 선언 자료형[] 변수명; ← (해당 방식을 많이 사용!) ex) int[] a; 자료형 변수명; ex) int a[]; 배열의 객체 생성 객체 생성 시 개수가 지정되어야 함. 힙(Heap) 메모리에 생성 선언과 동시에 객체 생성 가능 ex) int[] a = new int[3]; 배열 객체의 값 대입 및 읽기 값 대입 참조변수명[인덱스] = 값; ex) a[0] = 1; 값 읽기 참조변수명[인덱스] ex) sout(a[0]); ⇒ 1 출력 배열의 생성과 동시에 값 대입 자료형[] 참조변수명 = new 자료형[]{값, 값, …, 값}ㅣ ex) int[] a = new int[]{3, 4, 5};..

Java 2024.03.13

[Java] 제어문

제어문의 개념 프로그램 실행 순서 제어 모든 제어문은 중괄호({})를 가진다. 만약 중괄호 안의 실행문이 1개인 경우 생략 가능 (컴파일러가 자동 삽입) 제어문 종류 if, switch, for, while, do-while 제어 키워드 종류 break, continue 조건문 (선택 제어문) 조건식에는 비교/논리 연산자가 들어간다. if 문 if문의 4가지 패턴 단일 if문 if(조건식) { 실행내용 } if else문 if(조건식) { true일 때 실행내용 } else { false일 때 실행내용 } if else if문 if(조건식) { 실행내용 } else if (조건식) { 실행내용 } else { 실행내용 } 중첩 if문 if 문 안에 if 문 switch 문 기본 구조 switch(조건식)..

Java 2024.03.11

[Java] Scanner 클래스

Scanner 클래스 console 창에서 사용자에게 입력을 받을 수 있다. 사용 import java.util.Scanner; Scanner scan = new Scanner(System.in); System.out.print(”문자를 입력하세요: “); String str = scan.nextLine(); scan.close(); 마지막에 close 코드를 작성해줌으로써 scan 객체가 사용 중인 메모리 정리 java.util.InputMismatchException 예외 정수로 입력해야 하는데 다른 타입을 입력한 경우 발생 nextLine() 함수로 수정해준다. Scanner 클래스 관련 메서드 nextLine() 문자열을 엔터칠 때까지 입력 받는다. (공백 포함) next() 문자열의 공백까지만 ..

Java 2024.03.11

[Java] 연산자

연산자의 종류 산술 연산자 +, -, *, /, % 증감 연산자 데이터 값의 1 증가 및 감소 ++, — a = a+1; → a+=1; → a++; 다 같은 형태 전위형 (++변수명) 연산 전 증감 수행 후위형 (변수명++) 연산 후 증감 수행 비트 연산자 비트 AND, OR, NOT, XOR &, |, ~, ^ shift 연산자 비트 단위의 이동 참고: 최상위 비트가 0이면 양수, 1이면 음수 , > 비교 연산자 , ≥, >≥ 삼항 연산자 참인 경우 x, 거짓인 경우 y (참 또는 거짓) ? x : y

Java 2024.03.11
728x90