예외처리(Exception) 이란? 예외가 발생하는지 검사하고 예외가 발생할 경우 프로그램이 비정상 종료가 되는 것을 방지하기 위해 처리하는 것 * 필수는 아니지만 강력하게 권고하는 프로그래밍 스킬입니다. 예외의 종류- 예외의 종류에 따라 처리되지 않아도 되는 예외가 있다. 예외의 종류 설명 컴파일러 체크 Error 자바 가상 기계 안에서 오류가 발생시 생성된다. X RuntimeException 프로그래밍 버그, 논리오류에서 기인한다. X CheckedException Error와 RuntimeException을 제외한 나머지 예외이다.회복 될 수 있는 예외이므로 프로그램은 반드시 처리해야 한다.(처리가 되지 않을 경우 컴파일 오류 발생) O 분류 예외 타입(예외 클래스) 예외 발생 경우 Runtime..
다형성이란? 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 의미 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있다. Java에서 다형성은 상속과 인터페이스를 통해 이루어지며, 인터페이스가 상속보다 다형성에 더욱 유연함을 제공합니다. 참조변수의 형변환 - 기본형 변수와 같이 참조변수도 형변환이 가능하다.서로 상속관계에 있는 클래스 사이에서만 가능하다. 형변환 생략 여부자손타입 -> 조상타입 (Up-casting) 형 변환 생략 가능 자손타입 원의 넓이를 구해라. System.out.println(s); // 원을 도형으로 부르겠다. 도형을 객체로 불러서 // 객체의 정보를 출력해라. -> 원에 대한 정보를 출력해라. // println(Object x) // DownCa..
자바의 Object 클래스란 ? 자바 API의 모든 클래스와 사용자가 정의한 모든 클래스의 최상위 클래스이다. 즉, 모든 자바 클래스들은 Object 클래스를 상속받는다. ex ) class A extends B A클래스는 B클래스를 상속받았으며, Object 클래스도 묵시적으로 상속받았다고 볼 수 있다. * Object 클래스의 주요메소드 메소드 용도 boolean equals(object obj) 두 개의 객체가 같은지 비교한다. 반환형은 boolean (true, false) String toString() 현재 객체의 문자열을 반환한다. (오버라이딩을 사용하여 현재 객체의 초기화된 멤버변수를 알 수 있다.) Object clone() 객체를 복사한다. Class getClass() 객체의 클래스형..
인터페이스란 ? 완벽한 abstract 클래스라고 표현할 수 있다. 객체와 객체사이의 상호작용을 나타낸다 (약속) (abstract 클래스를 다시 공부하시려면 링크를 이용하세요.) 인터페이스의 특성 인터페이스 1. 구현하기 위해 implement를 사용 2. 오직 추상메소드와 상수로만 이루어져 있다. 3. 인터페이스 안에서 선언되는 메소드는 모두 묵시적으로 public, abstract 인터페이스와 추상클래스 No. 인터페이스 추상클래스 1 클래스가 아니며 interface로 선언 클래스(class)이다. 2 public abstract 추상메소드만 가진다. 일반메소드, 추상메소드를 가질 수 있다. 3 구현을 하며 implements로 서브 클래스를 정의한다. 확장 가능하며 extends로 하위 클래스 ..
오버라이딩이란? 상위 클래스에 정의된 메소드의 이름, 반환형, 매개변수 선언까지 완전히 동일한 메소드를 하위 클래스에서 재 정의 하는 것 * 하위 클래스에서 오버라이딩 된 상위 클래스의 메소드를 호출하려면 super() 키워드를 사용해야합니다. 추상클래스란? 완전하지 않은 클래스를 의미한다. 따라서 인스턴스의 생성이 불가능한 클래스이다. 추상클래스와 오버라이딩에 대한 이론을 마치며 실습을 통해 공부하겠습니다. 추상클래스 Shape // 도형 클래스. // 모든 도형 클래스들의 기초 클래스 // 추상 클래스 // 추상클래스란 개념만 가지고 있는 대상을 설계한 클래스다. // 따라서 명확한 기능의 정의를 내리기 힘든 경우 사용한다. // ex) 도형의 정보를 표시해라 .. (어떤 도형인지 알고??) // e..
메소드 오버로딩과 생성자에 대한 기본적인 공부는 링크 걸어놓겠습니다. 생성자에 대한 내용입니다 메소드 오버로딩에 대한 내용입니다 기본적인 이론을 공부하고 실습을 통해 공부하겠습니다. 생성자 오버로딩과 this 키워드 public class C { private int num; private char ch; private String str; // 1) 세가지 변수 모두 외부에서 어떠한 값이 들어올지 모르는 경우 (디폴트 값을 설정 해야 하는 경우) public C() { this(0,'A',""); System.out.println("C ()"); // this.num = 0; // this.ch = 'A'; // this.str = ""; } // 2) 세가지 변수 중에 두가지 변수만 알고 있는 경우 ..
자바에서 상속이란 ? 기존 클래스를 재활용하여 새로운 클래스를 작성하기 위한 문법입니다 단, 재활용할 수 있다는 이유만으로 상속을 사용하면 안됩니다. 상속관계에 있어서 상속을 받은 클래스를 하위클래스 (자식클래스) 상속의 대상이 된 클래스를 상위클래스 (부모클래스) 라고 합니다. 실습을 통해 사용법에 대해 알아보겠습니다.먼저 상복을 받은 자식클래스 입니다. // 자식 클래스 // 상속 키워드 : extends // 확장이라는 의미를 가지고 있고, 상속의 개념(중복된 기능들을 상속시켜준다.) 라고 보다는 // 기초 클래스를 기반으로 한 확장 클래스를 만든다 라고 생각 해야한다. // 따라서 Child 클래스는 Parent 클래스를 확장시켜 만든 클래스다 라고 생각하는 것이 좋다. public class C..
메소드 오버로딩이란 ? 같은 이름의 함수에 매개변수를 다르게 사용하여 매개 변수에 따라 다른 함수가 실행되는 것입니다. 메소드 오버로딩을 사용함으로써 메소드의 이름을 절약하여 프로그램의 가독성을 높여줍니다. 예제를 통해 메소드 오버로딩에 대해 알아보도록 하겠습니다. 메소드 오버로딩을 사용하는 B 클래스 public class B { // 메소드 오버로딩 // 메소드의 이름을 중복해서 선언하는 것 // 단, 매개변수의 타입(종류)와 갯수, 순서가 달라야 한다. // 오버로딩 기법을 사용하는 경우 // 메소드가 매개변수에 따라서 의미가 비슷한 작업을 진행 할 때 // ex) System.out.printls(); // char 형태 출력 메소드명 : System.out.printChar(char ch); /..
생성자란? 인스턴스 생성시 딱 한번 호출되는 메소드로써, 인스턴스 변수의 초기화를 목적으로 정의되는 메소드입니다. 생성자를 사용하는 이유는 인스턴스 변수의 초기화를 한결 수월하게 진행할 수 있기 때문입니다.. 실습 예제를 통해 공부하겠습니다. public class A { // 개발자가 직접 클래스에 생성자를 만들지 않으면 // 컴파일러가 아무일도 하지 않는 (객체만 만들어내는 역할을 하는) 기본 생성자(디폴트 생성자)를 만들어 낸다. // 개발자가 생성자를 직접 만들어 놓았으면 디폴트 생성자는 컴파일러가 만들지 않는다. // 생성자의 구조 // 1) 생성자는 무조건 접근지시 제어자가 """"public"""" // 이유 : 객체는 항상 클래스 외부에서 만든다. // 때문에 private으로 되어있으면 ..
static변수란 ? 변수가 선언된 클래스의 모든 인스턴스를 공유하는 변수이다. 즉, 인스턴스 변수가 인스턴스 별로 각각 존재한다면 static을 사용하여 딱 하나만 존재해서 모든 인스턴스를 공유하는 형태의 변수이다. static 변수와 메소드를 사용하는 클래스 public class B { // 정적변수는 B클래스의 소속이 아니다. 단지 위치만 B클래스 안에 속해있고 프로그램 소속이다. public static int s_num = 0; // static 변수(정적)... 프로그램이 시작될 때 딱 한번만 만들어짐 public int m_num = 0; // 인스턴스 변수(멤버변수) .. 객체가 만들어 질 때 마다 만들어 진다. public B() { s_num++; this.m_num++; System..