Back-End/Java 메모장 18

수업 내용 (1) 상속

■ 상속 ■ • 상속 다른 클래스가 가지고 있는 멤버(필드, 메소드)들을 상속받아 재활용하는 것 부모와 자식간의 관계로 나타냄 -장점 1. 코드를 재활용함으로써 코드의 중복을 제거하고, 코드의 양이 줄어듬 2. 공통된 코드를 관리할 수 있기 때문에 코드의 유지보수(추가/변경)에 좋음 ■상속의 종류 ■ • 다중 상속 여러 개의 부모 클래스를 가질 수 있는 상속 • 단일 상속 한가지의 부모 클래스만 가질 수 있는 상속 -자바에서는 단일 상속만을 지원함 ■ 다중 상속의 문제점 ■ 1. 모호성 상속받은 부모 클래스들끼리 같은 이름을 가진 메소드나 변수가 있을 경우 어떤 부모 클래스에서 호출 해야하는지 알 수 없는 모호성이 발생 2. 복잡성 다중 상속을 사용하면 클래스 간의 관계가 복잡해지고 코드의 가독성과 유지..

수업 내용 (1) 호출 스택

■ 호출 스택 ■ • 스택(Stack) 쌓아 올리는 형태를 가진 자료구조이며 후입선출(LIFO, Last In First Out)의 구조 • 큐(Queue) 줄을 서서 기다리는 형태를 가진 자료구조이며 선입선출(FIFO, First In First Out)의 구조 • 스택(Stack) 1. 데이터 0을 꺼내기 위해서는 데이터 1, 2를 모두 꺼내야 함 2. 데이터 1을 꺼내기 위해서는 데이터 2를 꺼내야 함 • 큐(Queue) 1. 데이터 0을 바로 꺼낼 수 있음 2. 데이터 1을 꺼내기 위해서는 데이터 0을 먼저 꺼내야 함 • 호출 스택(Call Stack) 메소드 호출과 관련된 정보를 저장하는 메모리 영역으로 후입선출(LIFO) 구조를 가짐 -설명1 main 메소드가 호출되어 스택에 올라가있는 상태 ..

수업 내용 (1) 객체

■ 오버로딩(Overloading) ■ • 오버로딩(Overloading) 같은 메소드 이름을 사용하지만 매개 변수의 타입과 위치가 다른 방식 * 다형성의 개념중 하나 • 예시 ex) ■ 필드 ■ • 필드(Field) 클래스 또는 메소드의 속성 • 예시 • 멤버 변수(Member Variable) 클래스 영역에 있는 변수로써 크게 두가지로 나눠짐 1. 인스턴스 변수 2. 클래스 변수 • 지역 변수(Local Variable) 메소드 또는 생성자 내부에 위치한 변수 또는 if, for과 같이 블록 {} 안에 있는 변수 • 변수 생명 주기(Variable Life Cycle) • 변수 종류별 메모리 위치(기본형 기준) 1. 클래스 변수 : 정적 영역(Static or Method) 2. 인스턴스 변수(Hea..

수업 내용 (1) 객체

■ 객체 지향 프로그래밍 (OOP) ■ • 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 프로그래밍에서 필요한 데이터들을 추상화 시켜 객체를 만들고, 객체들간의 상호작용을 통해 프로그램을 개발하는 프로그래밍 패러다임 중의 하나 • 자바 객체 지향 개념에서의 핵심 4가지 [1] 캡슐화 변수와 메서드를 클래스로 묶어 독립적으로 동작하지 않도록 하거나 불필요한 정보를 노출시키지 않는 개념 1. 코드의 유지보수성을 향상 2. 객체의 내부 구현을 외부로부터 숨김 (정보 은닉) 3. 객체의 내부 상태를 제어하고, 잘못된 접근으로부터 보호함 [2] 상속 부모 클래스가 가지고 있는 것을 자식 클래스가 물려받아 확장(extends)하는 개념 1. 코드의 재사용성을 높이고, 중복을 최소..

수업 내용 (1) 배열

■ 배열 문제풀이 복습 ■ [Q1] 1. 5만큼의 길이를 가진 배열을 선언 및 할당하세요. 2. 위에서 선언 및 할당한 배열에 아래의 값으로 초기화 하세요. -> "A", "B", "CD", "E", "FG" 추가로 출력시 방법 [Q2] 1. 국어, 영어, 수학, 과학 점수를 배열을 만들어서 넣으세요. -> 국어 점수 : 85 -> 영어 점수 : 80 -> 수학 점수 : 90 -> 과학 점수 : 88 2. 배열에 있는 값을 모두 합친 후 평균 점수를 출력하세요. ■ 얕은 복사 ■ 배열의 주소 값만 가져와 참조하는 방식으로, 하나의 배열 객체를 두 변수가 공유함 ■ 깊은 복사 ■ 새로운 배열 객체를 생성하면서 기존 배열의 데이터를 복사함. • for문을 활용한 방식 • arraycopy()를 활용한 방식 ..

수업 내용 (2) 배열

배열~ ■ 배열의 뜻 ■ • 배열(Array) 같은 자료형을 가진 변수를 하나로 묶어 관리함 • 인덱스(Index) 배열 내의 각 요소(element)에 접근하기 위해 사용되는 번호로써 인덱스는 0부터 시작함 ■ 배열의 메모리 구조 ■ 배열은 참조형 변수이기 때문에 힙 메모리에 값을 저장함 ■ 배열의 선언과 할당 ■ ■ 배열 초기화 방식 ■ ■ 문제 풀이 ■ [Q1] 1. 5만큼의 길이를 가진 배열을 선언 및 할당하세요. 2. 위에서 선언 및 할당한 배열에 아래의 값으로 초기화 하세요. -> "A", "B", "CD", "E", "FG" [Q2] 1. 국어, 영어, 수학, 과학 점수를 배열을 만들어서 넣으세요. -> 국어 점수 : 85 -> 영어 점수 : 80 -> 수학 점수 : 90 -> 과학 점수 :..

수업 내용 (1) 제어문(반복문)

3월20일 수 ■ for문 문제풀이 ■ [Q1.] 숫자 1 부터 , 사용자가 입력한 값만큼 숫자를 출력하는 프로그램을 작성하시오. 1. 스캐너로 사용자로부터 숫자를 입력 받으세요 2. 만약 , 사용자가 숫자 10 을 입력 한다면 , 1 부터 10 까지의 숫자를 출력하면 됩니다 출력시 [Q2] 짝수를 출력하는 프로그램을 작성하시오. 1. 범위는 1 부터 20 까지 입니다 2. 스캐너로 입력 받지 않아도 되며 , 1~20 사이의 짝수를 출력하면 됩니다. 출력시 Q3. 로또번호 생성하는 프로그램 만들기. ★ 출력시 이런식으로 랜덤으로 로또 번호가 생김 [Q4] 1부터 100까지의 숫자 중 3과 5의 공배수를 출력하세요. -> 3과 5의 공통되는 배수 [Q5] 팩토리얼의 값을 출력하세요. ★ (코딩 테스트에 자..

수업 내용 (3) 제어문(반복문)

■ 반복문이란? ■ 지정한 횟수 또는 조건에 따라 반복하여 실행하며 개발자에 따라 코드의 가독성이 좋아지거나, 코드 중복을 줄일 수 있음. ■ for문 ■ 초기식 , 조건식 , 증감식으로 구성되며 반복할 횟수를 알고 있는 경우에 사용 함 대부분의 경우 for 문으로 사용됨 위 사진 for문안에 if문 활용해줄수있다. 출력시 i가 10부터 시작 ex) 10, 9, 8, 7, 6, ....1 까지 출력

수업 내용 (2) 제어문(조건문)

■ 조건문 ■ 특정 조건을 검사하여, 참(true)이면 코드를 실행하고 거짓(false)이면 실행하지 않음 ■ if문 ■ 어떠한 조건이 만족되었을 때 명령을 수행할 수 있도록 해주는 문법 개발자가 가장 자주 사용하는 제어문으로, 특정 범위나 여러가지 케이스에 대한 대응이 가능함. ■ if else if 문 , if else 문 ■ ex) ■홀수, 짤수, 배수 구하기 ■ 문제 풀이 ■ Q1. 입력 받은 값이 0 또는 12 이상일 경우 "값이 너무 크거나 작습니다."를 출력 하시오. Q2. 입력 받은 월에 따라 계절을 출력 하시오. 1. 스캐너로 사용자로부터 몇 월인지 입력 받으세요 2. 해당하는 계절과 출력 메시지는 아래와 같습니다 3, 4, 5 : 봄 6, 7, 8 : 여름 9, 10, 11 : 가을 1..

수업 내용 (1) 연산자

■ 증감 연산자 ■ (++ , -- ) : 피연산자를 1 증가 또는 감소 시킴 • 후위 증감 연산자 • 전위 증감 연산자 • 후위,전위 증감 연산자의 차이점 ■ 비교 연산자 ■ 변수나 상수의 값을 비교할 때 쓰이는 연산자이며,결과가 항상 true 또는 flase ■ 논리 부정 연산자(!) ■ 피연산자가 true이면 false를 반환하고, false이면 true를 반환함. ex) ■ 논리 연산자 ■ •논리 연산자(&& , ||) && (AND) : 두 피연산자가 모두 참일때 true 반환 || (OR) : 두 피연산자 중 하나라도 참일때 true 반환 ■ 삼항 연산자 ■ •삼항 연산자(조건 ? 참: 거짓) 조건식을 간단하게 줄여 사용하기 위한 방식 주로 아주 간단한 조건식의 경우 삼항연산자를 사용하지만, ..