개발자 수업
-
14. 다형성개발자 수업/Java 2021. 10. 11. 18:10
1. 다형성(polymorphism) 1) 사전적 : 여러 가지 형태를 취할 수 있는 능력 2) 하나의 참조변수로 여러 타입의 객체를 참조할 수 있는 것 즉 조상의 참조변수로 자손타입의 객체를 다룰 수 있는 것 => 원래의 타입은 유지됨 하나의 코드로 여러 자료형으로 구현되어 실행되는 것 같은 코드로 여러 다른 실행 결과가 나옴 3) 정보은닉, 상속과 더불어 OOP의 가장 큰 특징 중 하나임 4) 다형성을 잘 확용하면 유연하고 확장성 있고, 유지보수가 편리한 프로그램을 만들 수 있음 package kr.co.ezenac.polymorphism; // 조상 클래스 public class Player { // 멤버변수 private String name; private int age; private int ..
-
13. Review개발자 수업/Java 2021. 10. 11. 12:56
1. 왜 OOP 사용할까? 1) 요구사항 변경에 유연하게 대처하고 기능 변경, 재사용을 쉽게 하기 위한 것 2. 클래스(Class)란? 1) 부류, 종류, 등급, ... 분류하다, 분류되다 2) 템플릿(청사진) 3) 속성과 기능을 묶는 것 - 속성 : attribute, fields, value, property, ... - 동작 : operation, function, method, ... 4) 개발자가 정의한 형식(Type)으로 개념일 뿐이며 객체를 통해서 메모리에 할당될 때 비로소 사용 가능해짐 3. 클래스 선언 방법 1) 클래스 선언 방법 [가시성 지시자] class 클래스명 { // 필드들 [가시성 지시자] 자료형 필드명; ... // 메서드들 [가시성 지시자] 반환자료형 메서드명([매개변수들]..
-
12. 상속과 오버라이딩개발자 수업/Java 2021. 10. 8. 23:22
1. 상속(inheritance)의 개념 1) 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 2) 관계없는 두 개 이상의 클래스를 조상(부모), 자손(자식)으로 직접적 관계를 만듦 3) 자손은 조상의 모든 멤버를 상속받음 (단 생성자, 초기화 블록 제외) 4) 자손의 멤버 개수가 조상보다 적을 수가 없음 (같거나 많음) => 다형성 개념 적용 5) is a 관계 : ~은 ~이다 (호랑이는 포유류이다) 6) 만들어질 클래스에 영향을 가장 많이 주는 클래스는 상속하고 보조적인 것은 포함으로 구현 7) 자바는 단일 상속만 허용함 8) 상속하는 클래스 : parent class, super class 상속받는 클래스 : child class, sub class // 조상 클래스 public class ..
-
과제1 - TwoDArrayTest03개발자 수업/Java 2021. 10. 8. 15:16
정답 코드 import java.util.Scanner; public class TwoDArrayTest03 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[][] student;// 2차원 배열 선언 // 반 수, 인원, (점수)합계, (점수)전체 합계 int count = 0, num = 0, sum = 0, total = 0; //반 별 평균 double avg = 0.0; //반 별 평균의 합(=>평균) double avgTotal = 0.0; System.out.print("반 수 입력 : "); count = sc.nextInt(); student = new int[count][]; Syste..
-
11. 컬렉션 프레임워크개발자 수업/Java 2021. 10. 7. 23:44
1. 컬렉션 1) 사전적 의미로 요소(객체)를 수집해서 저장하는 것 2. 배열의 문제점 1) 저장할 수 있는 객체 수가 배열을 생성할 때 결정(정적) => 불특정 다수의 객체를 저장하기에는 문제점이 있음 2) 객체를 삭제했을 때 해당 인덱스가 비게 됨 => 듬성듬성 빠진 배열이 됨 3. 컬렉션 프레임워크(Collection Framework) 1) 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 제공되는 컬렉션 라이브러리 2) 라이브러리(기능) + 프로그래밍 방식 3) 표준화, 정형화된 프로그래밍 방식 4) 인터페이스를 통해서 정형화된 방법으로 다양한 컬렉션 클래스 이용 4. 컬렉션 프레임워크의 주요 인터페이스 1) List : 배열과 유사하게 인덱스로 관리 - ArrayList, vector, Li..
-
10. 배열개발자 수업/Java 2021. 10. 6. 18:48
1. 배열(Array)이란? 1) 자료를 순차적으로 한꺼번에 관리하는 방법 2) 동일한 자료형의 순차적 자료구조 3) 배열의 순서는 0부터 시작 4) 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함 2. 배열 선언과 초기화 1) 배열 선언하기 int[] arr = new int[10]; int arr[] = new int[10]; 2) 배열 초기화하기 - 배열은 선언과 동시에 자료형에 따라 초기화 됨 (정수는 0, 실수는 0.0, 객체는 null) - 필요에 따라 초기값을 지정할 수 있음 int[] numbers = new int[] {10, 20, 30}; // 개수 생략해야 함 int[] numbers = {10, 20, 30}; // new int[] 생략 가능 int[] ids; i..
-
9. 객체지향프로그램3개발자 수업/Java 2021. 10. 6. 18:47
1. 객체 자신을 가리키는 this 1) 인스턴스 자신의 메모리를 가리킴 2) this() : 생성자에서 또 다른 생성자를 호출할 때 사용 - 클래스에 생성자가 여러 개인 경우, this()를 이용하여 생성자에서 다른 생성자를 호출 - 생성자에서 다른 생성자를 호출하는 경우에는 인스턴스 생성이 미완성인 상태이므로 다른 수행문을 쓸 수 없음 3) 자신의 주소를 반환 public class Person { private String name; private int age; public Person() { this("no name", 20); } public Person(String name, int age) { this.name = name; this.age = age; } public void showIn..
-
8. 객체지향프로그래밍2개발자 수업/Java 2021. 10. 5. 18:24
1. JVM의 메모리 구조 1) 호출스택(Call Stack) -- LIFO(Last In First Out), 후입선출 - 메서드의 저장공간 - 메서드가 호출되면 메서드가 수행에 필요한 메모리 공간을 할당받고 - 메서드가 종료되면 사용하던 메모리를 반환함 - 프로그램의 시작점 main()이 시작하면서 필요한 메모리 공간을 할당함 - 호출 스택에서 맨 위에 있는 메서드가 현재 실행중이며, 아래에 있는 메서드가 바로 위에 있는 메서드를 호출한 메서드이며 대기 상태 /* * 콜스택(stack, LIFO)은 후입선출 * 큐(Queue, FIFO)는 선입선출 */ public class CallStackTest { public static void first() { System.out.println("first..