본문 바로가기

Java11

자바 추상클래스 (Java abstract class) 자바 추상클래스 (Java abstract class) 1. 추상화 클래스 간의 공통점을 찾아내서 공통의 조상을 만드는 작업 상속 계층도를 따라 올라갈수록 클래스의 추상화는 더욱 심화된다. 2. 구체화 상속을 통해 클래스를 구현, 확장하는 작업 상속 계층도를 따라 내려올수록 클래스는 더 구체적이다. 3. 추상 메소드, 추상 클래스 추상 메소드 선언되어 있으나 구현되어 있지 않은 메소드 (중괄호가 없는 메소드) abstract 키워드를 사용하여 선언 추상 메소드는 서브 클래스(자식 클래스)에서 오버라이딩이 필수 추상 클래스 추상 메소드를 하나라도 가진 클래스 abstract 키워드를 사용하여 선언 추상 클래스는 일반 메소드를 가질 수 있으며, 일반 메소드만 가지고 있더라도 추상 클래스로 만들 수 있다. 추.. 2023. 3. 5.
자바 상속 (Java Inheritance) 자바 상속 (Java Inheritance) 1. 상속 (Inheritance) 기존 클래스의 변수(데이터)와 메소드(로직, 코드)를 물려받아 새로운 클래스를 구성 코드의 중복 감소, 클래스의 간결화 가능 먼저 작성된 프로그램을 재사용함으로써 신뢰성 있는 프로그램을 손쉽게 개발 클래스 간 계층적 분류 및 관리가 가능하여 유지보수 용이 class 서브클래스 extends 슈퍼클래스 2. 상속 특징 다중 상속을 지원하지 않는다. 여러 개의 클래스 상속 불가능 (부모 클래스는 한 개만 가질 수 있다.) 상속 횟수에 제한을 두지 않는다. 모든 클래스는 java.lang.Object를 상속받는다. 3. 메소드 오버라이딩 부모 클래스가 가지고 있는 메소드를 그대로 가지고 와서 (리턴타입, 메소드명, 매개변수) 중괄.. 2023. 3. 5.
자바 ArrayList (Java ArrayList) Java ArrayList 1. Collection 요소(Element)라고 불리는 가변 개수의 객체들의 집합 여러 개의 객체를 보관할 수 있게 만들어진 클래스들의 집합 (기본 타입의 값을 넣으면 자동으로 wrapper 클래스 변환) 고정 크기의 배열을 다루는 불편함 해소 2. Collection 특징 요소의 개수에 따라 자동 크기 조절 요소의 추가, 삭제에 따른 요소의 이동을 자동 관리 Generic 기법으로 구현 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법 ※ generic 기법 예시 3. ArrayList ArrayList 변수명 = new Array(); java.util.ArrayList 가변 크기 배열을 구현한 클래스 ArrayList에 객체 삽입과 삭제 리스트의 맨 뒤에 객체.. 2023. 3. 4.
자바 객체 지향 프로그래밍 OOP (Java Object Oriented Programming) 자바 객체 지향 프로그래밍 OOP (Java Object Oriented Programming) 1. 패러다임(paradigm) : 사람들의 견해나 사고를 근본적으로 규정하는 테두리 ※프로그래밍에서 패러다임 ① 절차지향 (C언어 등) 개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결 ex) 자동차 제조 : 엔진, 차체, 핸들, 바퀴, 의자 순서로 차례를 지켜 만들어져야 함. 컴퓨터의 처리 구조와 유사, 실행 속도가 빠름 모든 구성 요소가 연결되어 유지 보수가 어려움 실행 순서가 정해져 있어서 코드 순서가 바뀌면 결과가 달라질 수 있음 ② 객체지향 (C++, Java, Python 등) 객체 : 여러가지 데이터들이 모여있는 복잡한 자료형 클래스와 객체 class : 실제 Object를 제작하기 전.. 2023. 1. 31.
자바 메소드(Java Method) 자바 메소드(Java Method) 1. 메소드 어떤 작업을 수행하기 위한 명령문의 집합 여러 줄의 코드를 하나로 묶어서 표현한 형태 반복된느 코드를 최소화, 유지 보수에 유리 2. 메소드 기본 구조 접근제한자 : 메소드의 접근 범위를 설정해주는 키워드 public 어느 클래스에서나 접근 가능 private 현재 클래스에서만 접근 가능 리턴 타입 : 메소드 수행 결과를 어떤 타입(자료형)으로 반환할 것인지 알림 리턴 타입이 있다면 반드시 내부에 return 문을 이용하여 결과값을 반환 아무 결과 값도 반환하지 않을 경우 void 키워드 사용 (return 사용 안함) 매개변수 : 반드시 자료형이 명시되어야 하며, 개수에는 제한이 없음 (매개변수가 없어도 됨) 3. 메소드 오버로딩 (overloading).. 2023. 1. 28.
자바 이차원 배열(Java Two-dimensional array) 자바 이차원 배열(Java Two-dimensional array) 이차원 배열 1차원 배열 안에 또 다른 배열이 있는 형태 ▶ 예제 정수형 데이터를 저장할 수 있는 5행 5열크기의 array 선언 1~25까지의 숫자를 저장하고 아래와 같은 모양으로 출력 package onlyPractice; public class onlyPractice { public static void main(String[] args) { int[][] array = new int[5][5]; // 이중배열 array에 1~25까지 담기 int num = 1; for (int i = 0; i 2023. 1. 22.
자바 배열 (Java Array) 자바 배열 (Java Array) 1. 자료 구조(Data Structure) : 대량 데이터를 효율적으로 관리하기 위한 메커니즘 2. 배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 자료 구조 배열 선언 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조 같은 종류의 데이터들이 순차적으로 저장되는 공간 (반복문을 이용하여 처리하기에 적합한 자료 구조) 배열 안의 데이터 접근 : 배열의 변수명과 [ ]사이에 인덱스 번호를 사용하여 접근 배열의 크기 배열 레퍼런스 변수를 선언할 때 결정되지 않음 배열의 크기는 배열 생성 시에 결정되며, 나중에 바꿀 수 없음 (고정적) 배열의 크기는 배열의 length라는 공간에 저장 (for문에 이용가능) ▶ 예제 정수형 데이터 5개를 저장할 수 있는 배열 .. 2023. 1. 17.
자바 반복문(Java Loop) 자바 반복문(Java Loop) 어떤 조건에 만족할 때까지 같은 처리를 반복하여 실행하는 구조 1. while문 ▶ 예제 키보드로부터 입력 받은 수가 10보다 작을 때만 계속 정수를 입력 받기 10보다 큰 수를 입력하면 "종료되었습니다." 출력 package onlyPractice; import java.util.Scanner; public class onlyPractice { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = 0; while (num > "); num = sc.nextInt(); } System.out.println("종료.. 2023. 1. 16.
자바 조건문(Java Conditional Statement) 자바 조건문(Java Conditional Statement) ※ 조건문 주어진 조건을 비교, 판단하여 그 조건에 만족할 경우 지정된 명령을 실행, 만족하지 않을 경우 다음 단계의 명령을 수행 1. 단순 if문 ▶ 예제 int 타입의 변수 age를 선언하고 키보드로 값을 입력받은 후, 만약 age가 20보다 크거나 같다면 "성인입니다." 출력하기 Scanner sc = new Scanner(System.in); System.out.print("나이 입력 >> "); int age = sc.nextInt(); if (age >= 20) { System.out.println("성인입니다."); } ▶ 예제 int 타입의 변수 num을 선언하고 키보드로 값을 입력받은 후, 만약 num이 3의 배수이면서 5의 .. 2023. 1. 9.