예외는 런타임 오류가 발생한 것을 의미하며, 이러한 예외가 발생할 것을 예측하여 예외처리를 하는 게 가능하다. Java에서는 예외 처리 하는 방식으로 전통적인 방식과 전용 방식이 있다. 전통적인 방식은 if else 문을 사용하며, 전용 방식으로는 try catch finally 문을 사용한다. 💡try catch finally try { } catch (Exception e) { // TODO: handle exception } private static void tryCatch() { int num = 10; try { // 비즈니스 영역 System.out.println(100 / num); } catch (Exception e) { // 예외 처리 영역 System.out.println("예외 처..
제네릭 클래스는 자료형을 타입 변수로 대체한다. 때문에 클래스가 선언될 때 까지는 자료형 결정이 안 되었다가 객체가 생성될 때 결정이 된다. 제네릭 클래스를 작성하려면 타입 변수와 인자 리스트가 필요하다. T: 타입 변수 (메소드의 '매개 변수' 역할) : 인자 리스트 (메소드의 '()' 역할) 제네릭 클래스의 T는 타입 변수로, 이는 메소드의 '매개 변수' 역할을 하며, 인자 리스트는 로, 메소드의 '()' 역할을 한다. 타입 변수는 자료형을 전달하는 변수로서 자료형을 마치 매개 변수처럼 취급하고 반드시 참조형만 가능하다는 특징이 있다. 또 타입 변수는 대소문자를 가리지 않으며, aaa, bbb로 작성할 수도 있지만, 보통 1글자 대문자로 적는다. 💡제네릭 클래스의 특징 public class Ex_G..
형변환에는 값형 형변환과 참조형 형변환이 있다. 값형 형변환은 boolean을 제외한 값형끼리의 형변환이며, integer형을 character형으로 바꾸고 double형을 float형으로 바꾸는 작업 등을 한다. 따지고보면 character도 숫자형(아스키코드)이기 때문에 값형 형변환은 숫자형끼리의 형변환이라고 이해할 수 있다.
인터페이스는 클래스의 일종으로, 클래스가 자료형인 것처럼 인터페이스도 마찬가지로 자료형이다. 인터페이스는 상속받는 여러 클래스들을 행동(사용법, 메소드)들을 통일시키는 역할을 하며, 이를 행동 규약을 정의한다고 한다. 따라서 인터페이스는 관계 형성에 많이 사용되고 있다. 인터페이스는 객체를 생성할 수 없지만, 참조 변수는 생성할 수 있다는 특징이 있다. 💡인터페이스 특징 1. 구현된 멤버를 가질 수 없다. 인터페이스는 클래스와 달리 멤버 변수를 가질 수 없다. 그리고 메소드 역시 구현부 또한 소유할 수 없다. 2. 클래스의 부모 역할을 한다. 인터페이스는 클래스의 부모 역할을 하며, 클래스가 인터페이스를 상속받을 수 있다. 이를 통해 다중 상속의 문제를 방지할 수 있고, 상속받는 클래스마다 공통된 기능을..
Java 메소드 오버로딩 (Method Overloading) 메소드마다 이름을 다르게 하여 기능을 명확하게 할 수도 있지만, 프로젝트가 커질수록 메소드의 개수 또한 많아지므로 모두 기억하고 사용하기 어렵다. 이때 사용할 수 있는 게 메소드 오버로 isaac-christian.tistory.com 지난번에 메소드 오버로딩(Method Overloading)을 살펴봤다. 메소드 오버로딩은 인자 리스트를 변화시키며 이름이 동일한 메소드를 여러 개 생성하는 기술이었다. 그렇다면 메소드 오버라이딩(Method Overriding)은 무엇일까? 이름이 비슷하긴 하지만 두 기술은 전혀 다른 기능을 제공한다. 메소드 오버라이딩은 클래스 상속 시에 발생하며, 메소드 재정의하여 상속받은 메소드를 수정하는 기술이다. 예시..
Object 클래스는 JDK에서 제공하는 클래스로, 사용 빈도가 높지는 않지만 자바를 통틀어 가장 중요한 클래스이다. 눈으로는 보이지 않는 경우가 많은데, 우리가 사용하는 것에 밀접하게 관계되어 있는 경우가 많으며, 모든 클래스의 근원(최상위 클래스)이 된다고 해서 루트 클래스(Root Class)라고 부른다. 💡Object 클래스 (Root Class) Class Object is the root of the class hierarchy.Every class has Object as a superclass. All objects,including arrays, implement the methods of this class. // class TestParent class TestParent extend..
상속은 부모가 가지는 재신을 자식에게 물려주는 행동을 말하며, 자바에서는 부모 클래스가 가지는 멤버 변수, 멤버 메소드를 자식 클래스에게 물려주는 행동을 의미한다. 상속은 부모 클래스에 있는 100% 모든 내용을 복사해서 자식 클래스에 붙여넣기 하는 것으로 이해할 수 있다. 이때 중요한 것은 넘겨준다는 것이 복사 붙여넣기를 의미한다는 점이다. 이러한 코드 재사용의 상속의 특징으로 인해 비용 절감이 가능해진다. 💡상속 관계에 있는 클래스 호칭 상속을 어떤 목적으로 하느냐에 따라 부르는 말이 조금씩 달라진다. 1. 부모 클래스
💡클래스 로딩 (Class Loading) 메인 메소드가 실행되기 전에 여러가지 작업이 일어나는데, 그 중에 하나가 '클래스 로딩'이라는 작업이다. 클래스 로딩은 프로그램을 실행하기 전에 클래스의 정의를 미리 읽는 작업 (인식하는 작업)을 의미하며, 이는 클래스를 사용할 수 있도록 메모리에 기억하는 과정으로 이해할 수 있다. 클래스 로딩 과정에서 모든 static 키워드를 인식하고, static을 만나는 순간 메모리 실체화(구현)을 하게 된다. 그래서 정적 변수는 main()가 만들어지기 전에 만들어진다. 💡객체 변수 private String name; private int age; 객체 변수는 static이 붙지 않은 변수를 말하며, 개인 데이터를 의미한다. 💡정적 변수 private static S..