본문 바로가기

Programming/JAVA

(13)
자바의 인터페이스 1. 인터페이스 (Interface) : 자바에서 객체의 사용 방법을 정의한 타입으로 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. -> 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서 직접 객체의 메소드를 호출하지 않고 중간에 인터페이스를 둔다. -> 인터페이스는 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로 어떤 객체를 사용하느냐에 따라 실행 내용과 리턴값이 다를 수 있다. -인터페이스 선언 : 인터페이스 선언은 class 키워드 대신에 interface 키워드를 사용한다. [ public ] interface 인터페이스명 { // 상수 [ public static final ]..
자바의 추상 클래스 1. 추상 클래스 : 객체를 직접 생성할 수 있는 클래스를 실체 클래스라고 한다면 추상 클래스는 이 클래스들의 공통적인 특성을 추출해서 선언한 클래스를의미한다. 추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 직접 생성해서 사용할 수 없다. 즉, 추상 클래스는 new 연산자를 사용해서 인스턴스를 생성시키지 못한다. Animal animal = new Animal();//(X) *추상 클래스는 실체 클래스를 만들기 위해 부모 클래스로만 사용된다. (extends 뒤에만 올 수 있는 클래스) class Ant extends Animal { ... }// (O) ※실체 클래스들의 공통적인 특성을 뽑아 추상 클래스로 만드는 이유? 실체 클래스들의 공통된 필드와 메소드의 이름..
자바 상속의 개념 1. 상속(Inheritance) : 기존의 클래스에 기능을 추가하거나 새로운 클래스를 정의하는 것을 의미하며, 부모 클래스(상위 클래스)의 멤버를 자식 클래스(하위 클래스 or 파생 클래스)에게 물려줄 수 있다. *상속의 장점 기존에 작성된 클래스를 재사용할 수 있다. 자식 클래스 설계 시 중복되는 멤버를 미리 부모 클래스에 작성해 놓으면, 자식 클래스에서는 해당 멤버를 작성하지 않아도 된다. 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련한다. ※상속 주의 사항 : 상속을 해도 부모 클래스의 모든 필드와 메소드들을 물려받는 것이 아니라 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외된다. 또한, 부모 클래스와 자식 클래스가 다른 패키지에 존재하면..
자바의 접근 제한자 1. 접근 제한자(Access Modifier) : 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막아야 한다. 그리고 특정 메소드를 호출할 수 없도록 제한할 필요가 있는데 이러한 기능을 구현하기 위해 자바는 접근 제한자를 제공한다. 접근 제한자 적용 대상 접근할 수 없는 클래스 public 클래스, 필드, 생성자, 메소드 없음 protected 필드, 생성자, 메소드 자식 클래스가 아닌 다른 패키지에 소속된 클래스 default 클래스, 필드, 생성자, 메소드 다른 패키지에 소속된 클래스 private 필드, 생성자, 메소드 모든 외부 클래스 private > default > protected > public 2. 클래스의 접..
자바의 클래스 1. 객체 지향 프로그래밍 (OOP : Object Oriented Programming) : 모든 데이터를 객체(object)로 취급하며, 하나씩 조립해서 완성된 프로그램을 만드는 기법 -객체(Object) : 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말한다. 예를 들어 사람의 속성으로는 이름, 나이가 있고 동작으로는 웃다, 먹다, 걷다 등의 동작이 있는데 이 속성과 동작들을 각각 필드(field)와 메소드(method)라고 부른다. ※ 객체 지향 프로그램의 특징 : 캡슐화, 상속, 다형성 -캡슐화(Encapsulation) : 객체의 필드, 메소드를 하나로 묶고, 실제 구현 내용을 감추는 것으로 외부 객체는 객체 내부의 구조를 ..
자바의 참조 타입과 배열 1. 데이터 타입 분류 데이터타입 기본 타입 (primitive type) 정수타입 byte char short int long 실수타입 float double 논리타입 boolean 참조 타입 (reference type) 배열 타입 열거 타입 클래스 인터페이스 -기본 타입(primitive type) : 정수, 실수, 문자, 논리 리터럴을 저장하는 타입으로 선언된 변수는 실제 값을 변수 안에 저장한다. -참조 타입(reference type) : 객체(Object)의 번지를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말하고, 이를 이용해 선언된 변수는 메모리의 번지를 값으로 갖는다. 참조 타입 변수는 힙 영역의 객체를 참조하지 않는다는 뜻으로 null(널) 값을 가질 수 있다. /* ..
BufferedReader, BufferedWriter를 이용한 빠른 입출력 1. Java의 입력 방법 : Java 사용 시 입력 방법은 크게 두 가지 방법을 사용한다. Scanner를 이용하여 입력하는 방법과 BufferedReader를 이용하여 입력하는 방법 2. Scanner : 자바에서 입력받을 때 주로 쓰이는 클래스로 정수, 실수, 문자열을 읽어올 수 있다. import java.util.Scanner;// scanner를 사용하기 위해 외부 클래스 호출 (java.util 패키지에 포함된다) public class main{ public static void main(String args[]){ Scanner scan = new Scanner(System.in);// 객체 생성 후 System.in으로 입력한 값을 바이트 단위로 읽는다. String name; int ..
자바의 제어문 (조건문과 반복문) 1. 제어문(control flow statement) : 원하는 결과를 얻기 위해서 프로그램의 순차적인 흐름을 제어하는 것을 제어문이라고 한다. 2. 조건문(conditional statements) : 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문이다. -if문 : 조건식의 결과가 참(true)이면 주어진 명령문을 실행하며, 거짓(false)이면 아무것도 실행하지 않는다. if(조건식){ 실행문; 실행문; } -> 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나, boolean 변수가 올 수 있다. 조건식이 true이면 { } 블록 안의 실행문을 실행하고 false이면 실행하지 않는다. -if~else문 : if문과 함께 사용하는 else문은 if문과 반대로..