본문 바로가기

분류 전체보기

(83)
[Java Programming] 객체지향 핵심 원리(6) 추상 클래스와 객체의 형변환 ■ 추상 클래스와 내부 클래스 추상메서드 메서드의 시그니쳐( 리턴타입, 메서드명, 매개변수 )만 정의 구체적인 행위는 정의되지 않은 특수한 메서드 abstract 예약어를 사용 상속을 통해 사용되는 클래스마다 필수로 가져야하는 메서드의 형태를 정의 추상 메서드를 Overriding하지 않으면 컴파일 불가능 추상 클래스 추상 클래스는 일반적으로 하나 이상의 추상 메서드를 포함 추상 메서드를 포함하고 있으면 무조건 추상 클래스로 선언해야함. 추상 클래스는 객체 생성을 할 수 없음 추상 클래스를 상속받은 클래스는 추상 메서드를 OVerriding해야 객체를 생성할 수 있음 유지보수의 편의성을 높이기 위해 사용함. (상속을 통해 동일한 기능을 포함한 클래스가 됨) 내부 클래스 클래스..
[Java Programming] 객체지향 핵심 원리(5) 자바의 상속 ■ 상속(Inheritance) 상속의 개요 부모 클래스의 모든 것을 자식 클래스가 물려받는 것 extends 예약어 사용 ( 상속은 부모의 기능에서 추가적인 것들을 확장한다는 의미 ) 상속을 통해 소스코드의 재사용성이 보장되며, 가독성이 높아짐 부모 / 자식 간 is a~ 관계에 존재해야함 부적절한 상속은 소스코드에 대한 분석과 개발을 어렵게 만듦 자바에서는 단일 상속만 허용 상속과 생성자 자식클래스는 부모 클래스들이 가지고 있는 모든 멤버와 자기 클래스가 갖는 모든 멤버를 가짐 초기화를 위해 자식 클래스가 호출되면 부모 클래스의 생성자가 먼저 초기화하고 자식 클래스의 생성자를 통해 초기화됨. class SuperClass{ int n1; public SuperClass(){ System...
[Java Programming] 객체지향 핵심 원리(4) 메서드 Overloading과 매개변수 ■ 메서드 Overloading 변수의 중복 선언 변수는 데이터 타입이 달라도 이름이 동일한 경우를 허용하지 않음 클래스 안에 동일한 이름의 변수를 사용했을 때, 프로그램이 모호해지기 때문. 메서드의 중복 정의 변수와 달리 하나의 클래스에 동일한 이름의 메서드는 여러개 정의할 수 있음 매개변수의 개수와 타입을 통해 실행될 메서드를 구분할 수 있기 때문 이를 메서드 Overloading이라 함. public class Employee{ String name; int age; void setEmployee(String name, int age){ this.name = name; this.age = age; } void setEmployee(String name){ th..
[Java Programming] 객체지향 핵심 원리(3) 자바 Modifier와 생성자 ■ 자바의 Modifier static 예약어 멤버 변수와 메서드 앞에 붙일 수 있는 modifier, 활용 방법을 제어함 인스턴스 변수 : static 예약어 X, 생성된 인스턴스마다 그 안에 클래스의 인스턴스 변수들이 포함됨 클래스 변수 : static 예약어 O, 클래스로부터 생성된 인스턴스에 포함되지 않는 변수, 많은 인스턴스를 생성하더라도 메모리에 하나의 변수만 존재함, 객체를 생성하지 않고도 접근할 수 있는 변수. 동일한 정보를 가지고 있는 경우 인스턴스 변수로 선언하면 객체가 생성될 때 마다 인스턴스 변수가 포함 될 것, 하지만 클래스 변수로 선언하면 하나의 메모리로부터 값을 참조하기 때문에 메모리 낭비가 덜하다. 클래스 메서드 : 일반 메서드에 static 예..
[Java Programming] 객체지향 핵심 원리(2) 클래스의 구조 ■ 클래스의 선언 클래스의 선언부와 몸체로 나뉘고 몸체에는 클래스의 멤버가 선언된다. 클래스 멤버 구성 생성자(Constructor) : 객체의 초기화를 담당 멤버 변수(Variable) : 클래스가 가지는 속성을 정의 메서드(Method) : 클래스가 가지는 데이터를 조작하고 반환 클래스 Modifier 접근 권한 예약어 : public, protected, private, (default) 활용 방법 예약어 : final abstract, static, transient, volatile, syncornized, native 객체 생성 Car Yellow; Yellow = new Car(); new예약어를 사용하여 객체가 사용할 메모리 영역 할당 생성된 객체에 대한 참조값이 선언된 객체..
[Java Programming] 객체지향 핵심 원리(1) 객체지향 핵심 개념 ■ 객체지향 개요 OOP(Object Oriented Programming) 여러 모듈을 조립하여 다양한 기능을 구현함 특정 모듈에 오류가 발생하면 수정/개선이 용이함 객체와 객체 간 자유로운 데이터 이동이 가능해짐 객체, 클래스, 인스턴스 객체 : 현실세계에 존재하는 유무형의 모든것( 변수, 메소드 ) 클래스 : 현실 세계의 객체를 컴퓨터 메모리에 생성할 수 있는 템플릿 인스턴스 : 컴퓨터 메모리에 존재하는 객체 객체지향 언어의 주요 개념 상속 (Inheritance) 기존의 클래스에 변수와 메서드를 추가 정의하여 새로운 클래스를 작성함 클래스들 사이의 공통된 속성이나 기능이 있을 경우, 상속을 통해 코드의 재사용성을 높임 상속을 통해 객체들 사이의 계층 구조를 이룰 수 있음 상위계..
[Java Programming] 자바언어의 구조와 기본문법 (4) 자바 제어문 ■ 조건 제어문 if / if-else : 조건에 따른 단순 분기처리 if - else if / switch : 조건에 따른 다중 분기 처리 if / if-else if / if-else : Ture/False를 리턴하는 조건식 필요 switch : case에 해당하는 값 필요 if 문 if(Expression){ statement1; } statement2;if문 내 조건을 만족하면 statement1 수행 후 다음 구문으로 넘어감. 조건을 만족하지 않으면 statement2 수행 if-else문 if(Expression){ statement1; } else{ statement2; } statement3;if문 내 조건식이 True라면 statement1 수행 후 statement3 수행 ..
[Java Programming] 자바언어의 구조와 기본문법 (3) 자바 연산자 및 배열 ■ 자바 연산자 산술 연산자 : 정수형, 실수형에 사용됨. 증감 연산자: ++, -- 부호 연산자: +, -, *, / 나머지 연산자: % 비교 연산자 : 대소 비교, 객체의 타입 비교 등에 사용됨, 수행결과는 boolean 데이터타입으로 리턴 >, >=,