Coding/Java 27

Java Handling Exception(예외 처리)

■ Java Handling Exception(예외 처리) • 오류 (Error) - 메모리 부족 또는 프로그램 실행이 꼬이는 경우 등 프로그램 복구가 불가능한 상황 - 오류가 발생하는 원인을 찾아서 제거하는 방법으로 해결 • 예외 (Exception) - 오류(Error)에 비해서 심각도가 낮고, 프로그램의 정상적인 흐름만 방해 파일을 읽으려 했으나, 해당 파일이 없는 경우 네트워크 연결이 유실되는 경우 - 문제 상황을 처리하는 로직을 구현하여, 런타임에서 자연스럽게 해결 가능 1. 예외 처리 - 예외가 발생했을 경우, 이 상황을 감지하고 처리하는 코드 - Throwable 클래스를 상속하는 자식 클래스로 이러한 문제들을 해결 • try ~ catch 문 종류 1. try ~ catch try{ // ..

Coding/Java 2020.09.17

Java Generic(제네릭)

■ Java Generic(제네릭) - 대상 객체의 타입을 입력받아서 사용하는 형식 - 미리 사용할 수 있는 타입을 명시해서 컴파일 타임에 체크 가능 입력을 Object로 입력받아, Casting을 런타임에 instanceof로 객체로 체크를 할 수 있지만, 비효율적으로 코드를 작성하게 된다. 제네릭을 사용할 경우 이러한 과정없이 간결하게 코드를 작성할 수 있다. 1. 제네릭 클래스 (Generic Class) • 클래스 선언 시, 설정되지 않은 타입을 타입 파라미터로 표현 class GenericFoo { // T: 타입 파라미터 String name; T memberVar; GenericFoo(String name, T memberVar){ this.name = name; this.memberVar ..

Coding/Java 2020.09.17

Java Enumeration(열거형)

■ Java Enumeration(열거형) - enum 키워드 사용 - java.lang.eum 클래스를 상속 - enum은 다른 클래스를 상속하지 못하지만, 인터페이스 구현은 가능(이미 상속하고 있기 때문에) - 내부적으로는 클래스 동작 - 열거형 타입에는 열거형 상수와 null 값 할당 가능 - public과 default만 사용 가능 • 기본 구현 - 열거형 상수는 객체이다. enum Job { // 각 상수는 0부터 숫자를 가지지만, Symbol로만 사용하고 숫자는 사용하지 않는다. STUDENT, MARKETING, DEVELOPER, CHIEF_EXECUTIONAL_OFFICER; // 열거형 } class Foo{ enum Symbol{ ONE, TWO, THREE; } } class Tes..

Coding/Java 2020.09.17

Java Abstract Class & Interface

■ Java Abstract Class & Interface 1. 추상 클래스 (Abstract Class) • 일부 메소드가 구현되지 않고, 선언만 되어있는 클래스(abstract 키워드) - 자식 클래스에서 구현되지 않은 메소드를 반드시 구현하도록 강제하는 것 - 상속한 모든 클래스가 구현하도록 하기 때문에 안정성을 높임 • 추상 클래스는 객체를 생성할 수 없다. - 그렇기 때문에 구현된 자식 클래스 객체를 받아야 한다. abstract class AbstractFoo{ int x, y; public void method(){ System.out.println("method"); } public abstract void abstractMethod(); // 세미콜론을 잊지말아야 한다 // 선언만 하고..

Coding/Java 2020.09.17

Java Polymorphism(다형성)

■ Java Polymorphism(다형성) - Overloading에 의한 다형성 - Override 에 의한 다형성(상속 이용) • 다형성 특징 1. 부모 클래스 타입으로 자식 클래스 타입의 객체를 참조하는 특징 - 부모 클래스 타입으로 자식 클래스(메소드, 멤버 변수)에 접근할 수 없다. class Foo{ public void methodA(){ } } class Bar extends Foo{ public void methodB(){ } } public class Polymorphism { public static void main(String[] args) { Bar bar = new Bar(); // 자식 객체를 생성 Foo foo = (Foo)bar; // 부모 클래스 타입으로 자식 객체를 ..

Coding/Java 2020.09.17

Java Modifier(제어자)

■ Java Modifier(제어자) - 클래스, 변수, 메소드에 부가 기능을 부여하는 키워드 1. 접근 제어자 (Access Modifiers) - 접근할 수 있는 범위를 정하는 제어자 - private : Class 안에서만 사용 가능 - default : 같은 Package 내에서 사용 가능 - protecte : 같은 Package 또는 다른 Package에 속한 자식 클래스에서 사용 가능 - public : 전체에서 사용 가능 * Class는 private와 public만 가능 • 기본 Package package PackageA; public class ClassA { public int x; protected int y; int z; // default (=package) private in..

Coding/Java 2020.09.16

Java Inheritance(상속)

■ Java Inheritance (상속) - 클래스를 상속하게 되면 모든 멤버변수 및 메소드를 계승하여, 새로운 클래스를 생성하는 것 - 상속할 대상 : 추상 클래스, 부모 클래스, 상위 클래스, 슈퍼 클래스 - 상속 결과 : 자손 클래스, 자식 클래스, 하위 클래스, 서브 클래스 - 상속 관계를 흔히 'IS-A' 관계라고 부른다. - extends 키워드를 사용 // 부모 클래스 class Person{ ... } // 자식 클래스{ class Developer extends Person{ ... } • 포함 관계 (Class Composition) - 'HAS-A' 관계 - 하나의 클래스가 다른 클래스의 객체를 보유하는 관계 class MainMachine{ ... } class Developer{..

Coding/Java 2020.09.16

JavaDoc 만드는 방법

■ JavaDoc 만드는 방법 1. JavaDoc을 만들 Class에 주석 및 @author 추가 /** * 클래스에 대한 설명, 이 클래스는 JavaDocs 클래스를 공부하기 위해... * @author Yoon Seok */ public class JavaDocs { ... } 2. 설명할 Constructor, Method 등에 주석을 달아준다. /** * 생성자에 대한 설명 * @param memberInt 입력 1 * @param memberString 입력 2 */ public JavaDocs(int memberInt, String memberString) { this.memberInt = memberInt; this.memberString = memberString; } /** * 메소드에 ..

Coding/Java 2020.09.16

Java Class(클래스)

■ Java Class(클래스) - 클래스(Class) : 객체를 생성하기 위한 설계도 - 객체(Instance, Object) : 실제 메모리상에 할당하는 것 • 변수 (Variable) - 클래스에서 쓰이는 다양한 변수 1) 클래스 멤버 변수(Static variable, Class variable) 2) 인스턴스 멤버 변수(Member variable, Attribute, ...) 3) 로컬 변수(Local Variable) 4) 로컬 파라미터 변수(Local Parameter Variable, Argument) • 메소드 (Method) - 객체가 하는 동작을 정의하는 작업을 수행하는 코드 - 코드의 중복을 방지, 유지보수성을 향상, 코드의 가독성 개선 • 생성자 (Constructor) - 클래..

Coding/Java 2020.09.16

Java String(문자열)

■ Java String(문자열) - 문자열은 내부적으로 클래스로 구성되어 있다 - 내부에는 문자의 배열로 된 데이터가 있다. - 한 번 만든 문자열은 변하지 않는다 (Immutable) * Immutable 한 속성 때문에, 문자열 편집은 String을 쓰지 않고 Builder나 Buffer 등을 사용한다. • String Method 함수 기능 int length() 해당 String의 길이 반환 char charAt(int index) 해당 Index에 위치한 Character 반환 int indexOf(char ch) 해당 ch의 값이 위치한 Index 값 반환, 없을 시 -1 반환 boolean equals(Object anObject) anObject와 비교한 결과 반환 boolean equa..

Coding/Java 2020.09.16