공부/Java 37

[Java-07] 객체지향프로그래밍Ⅱ - 다형성, 추상클래스

1. 다형성(Polymorphism) 1) 다형성이란? - 객체지향개념의 중요한 특징 중 하나 - 객체지향 개념에서의 '다형성' : 여러 가지 형태를 가질 수 있는 능력 - 자바에서의 '다형성' : 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 하는 것 - 구체적으로, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것 class Tv { boolean power; int channel; void power() { power = !power; } void channelUp() { ++channel; } void channelDown() {--channel; } } class CaptionTv extends Tv { String text; void caption() ..

공부/Java 2021.03.02

[Java-07] 객체지향프로그래밍Ⅱ - 패키지, import문, 제어자

1. 패키지(package) 1) 패키지(package) - 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음(패키지)으로써 클래스를 효율적으로 관리할 수 있음 - 클래스 또는 인터페이스를 포함시킬 수 있음 - 하나의 소스파일에는 첫 번째 문장으로 단 한 번의 패키지 선언만을 허용함 - 모든 클래스는 반드시 하나의 패키지에 속해야 함 - 패키지는 점(.)을 구분자로 하여 계층구조로 구성할 수 있음 - 패키지는 물리적으로 클래스 파일(.class)을 포함하는 하나의 디렉토리임 2) 패키지의 선언 package 패키지명; - 대소문자를 모두 허용하지만 클래스명과 구분하기 위해 소문자로 하는 것을 원칙으로 함 - 이름없는 패키지(unnamed package) : 소스파일에 자신이 속할 패키지를 지정하지 않은 클..

공부/Java 2021.02.24

[Java-07] 객체지향프로그래밍Ⅱ - 상속, 오버라이딩

1. 상속(Inheritance) 1) 상속의 정의와 구현 - 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 - 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있음 - 코드의 추가 및 변경이 매우 용이함 - 코드의 재사용성을 높이고 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여함 - 상속은 키워드 'extends'를 사용하여 구현함 class Child extends Parent { ... } 조상 클래스 = 부모(parent)클래스, 상위(super)클래스, 기반(base)클래스 자손 클래스 = 자식(child)클래스, 하위(sub)클래스, 파생된(derived) 클래스 - 상속계층도(class hierarchy) : 클래스 간의 상속관계를 그..

공부/Java 2021.02.22

[Java-06] 객체지향프로그래밍 - 오버로딩, 생성자

1. 오버로딩(Overloading) 1) 오버로딩(overloading)이란? - 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 - 메서드 오버로딩(method overloading)이라고도 함 2) 오버로딩의 조건 1. 메서드 이름이 같아야 함 2. 매개변수의 개수 또는 타입이 달라야 함 (반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 않음) 3) 오버로딩의 예 [ex1] PrintStream 클래스의 10개의 오버로딩된 println 메서드 void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void pr..

공부/Java 2021.02.18

[Java-06] 객체지향프로그래밍 - 변수, 메서드

1. 변수(variable) - 변수의 선언된 위치에 따라 변수의 종류가 결정된다. 변수의 종류 선언위치 생성시기 인스턴스변수 (instance variable) 클래스 영역 인스턴스가 생성되었을 때 클래스변수 (class variable) 클래스가 메모리에 올라갈 때 지역변수 (local variable) 클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) 변수 선언문이 수행되었을 때 class Variables { int tv;// 인스턴스변수 static int cv;// 클래스변수 (static변수, 공유변수) void method() { int lv = 0;// 지역변수 } } 1) 인스턴스변수(instatnce variable) - 클래스 영역에 선언, 클래스의 인스턴스를 생성할 ..

공부/Java 2021.02.17

[Java-06] 객체지향프로그래밍 - 클래스, 객체

1. 객체지향언어 "실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다." - 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수(메서드)로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상세계를 구현함 - 기존의 'FORTRAN', 'COBOL'과 같은 절차적 언어의 한계를 느끼고 객체지향언어를 이용한 개발방법론이 대안으로 떠오르게 되면서 객체지향언어는 프로그래밍언어의 주류로 자리 잡음 - 1960년대 중반 최초의 객체지향언어 '시뮬라(Simula)'를 시작으로 'C++', '자바(Java)'가 발표됨 객체지향언어의 특징 1. 코드의 재사용성이 높음 - 새로운 코드를 작성할 때 기존의 코드를 이용하여 쉽게 작성할 수 있음 2. 코드의 관리가..

공부/Java 2021.02.16

[Java-05] 배열(Array) - String 배열, 2차원 배열

1. String 배열 1) String 배열의 선언과 생성 String[] name = new String[3]; - String타입의 참조변수를 저장하기 위한 공간이 마련 - 참조형 변수의 기본값은 null이므로 각 요소는 null로 초기화 2) String 배열의 초기화 String[] name = new String[3]; name[0] = new String("Lee"); name[1] = new String("Yeon"); name[2] = new String("Ju"); // 원래 String은 new 연산자를 사용해 객체를 생성해야하나 생략할 수 있음 String[] name = new String[3]; name[0] = "Lee"; name[1] = "Yeon"; name[2] = "J..

공부/Java 2021.02.15

[Java-05] 배열(Array) - 1차원 배열

1. 배열(array)이란? 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 ex) int[] score = new int[5]; -> 5개의 int값을 저장할 수 있는 배열을 생성함 2. 배열의 선언과 생성 1) 배열 선언 - 생성된 배열을 다루기 위한 참조변수를 위한 공간을 만드는 것 타입[ ] 변수이름; 또는 타입 변수이름[ ]; ex) int [] score; 또는 int score[]; String [] name; 또는 String name[]; 2) 배열 생성 - 배열을 선언한 다음에는 배열을 생성해야만 값을 저장할 수 있는 공간이 만들어짐 - new 연산자 사용 - 주어진 타입을 주어진 길이만큼 저장할 수 있는 배열이 생성 타입[ ] 변수이름; // 배열 선언 변수이름 = new 타입[길..

공부/Java 2021.02.10

[Java-04] 조건문과 반복문

1. 제어문(control statement) - 프로그램의 흐름(flow)을 바꾸는 역할을 하는 문장 - 조건문 : 조건에 따라 다른 문장이 수행되도록 함 - 반복문 : 특정 문장들을 반복해서 수행 2. 조건문 - if, switch 1) if문 if (조건식) { // 조건식이 참(true)일 때 수행될 문장 } - 만일(if) 조건식이 참(true)이면 괄호 { } 안의 문장들을 수행하라 - 조건식은 일반적으로 비교연산자와 논리연산자로 구성 (반드시 true 혹은 false의 값을 가져야 함) - 블럭(block) : 괄호 '{ }'를 이용해서 여러 문장을 하나의 단위로 묶음 [잘못된 예시] if(score > 60) System.out.println("합격"); // if문에 속한 문장 Syste..

공부/Java 2021.02.09

[Java-03] 연산자(Operator) - 비교 연산자, 논리 연산자, 비트 연산자

1. 비교 연산자 1) 대소비교 연산자 = - 기본형 중에는 boolean형을 제외한 나머지 자료형에 사용가능 - 참조형에는 사용불가 비교연산자 연산결과 > 좌변 값이 크면 true, 아니면 false = 좌변 값이 크거나 같으면 true, 아니면 false n = x / 2n 3. 그 외의 연산자 1) 조건 연산자 ? : 1. 조건식의 평가결과가 true면 연산결과는 식1 2. 조건식의 평가결과가 false면 연산결과는 식2 public class Test { public static void main(String[] args) { int x = 10, y = 5, result = 0; result = (x > y) ? x : y;// 조건식이 true이므로 result는 x의 값인 10 result ..

공부/Java 2021.02.08