JAVA 33

[JAVA] 예외처리, API

마커 인터페이스(Marker interface) - 클래스들을 그룹화하기 위한 목적으로 사용한다. - 인터페이스는 지정한 클래스의 부모이며, 모든 자식은 부모의 타입이므로 마커 인터페이스를 지정받은 클래스들이 하나의 타입으로 묶이게 된다. ------------------------------------------------------------------ 다중 상속 - 여러 부모 클래스를 상속하는 것을 다중 상속이라고 한다. - JAVA는 모호성 때문에 다중 상속을 지원하지 않는다. - 하지만 JDK8 버전부터는 인터페이스에 default 메소드 선언을 허용하며, 여러 개를 지정할 수 있는 인터페이스 특성 상 다중 상속을 지원하는 것이나 다름이 없다. 모호성(ambiguity) - 하나의 자식이 여러 ..

JAVA 2021.11.20

[JAVA] 추상 클래스, 인터페이스, 내부 클래스, 익명 클래스

추상 클래스 - 필드 안에 구현이 안된 메소드가 선언되어 있는 클래스를 추상 클래스라고 한다. - 이 때 구현되지 않은 메소드를 추상 메소드라고 부른다. - 반드시 재정의를 통해 구현을 해야지만 메모리에 할당되기 때문에 강제성을 부여하기 위해서 추상 메소드로 선언한다. 추상 클래스 선언 abstract class 클래스명{ abstract 리턴타입 메소드명(자료형 매개변수1,...); 일반 메소드도 선언 가능. } --------------------------------------------------------------------------- 인터페이스(interface) : 틀 - 추상 클래스를 고도화 시킨 문법. - 상수와 추상메소드만 존재한다. - 구현은 인터페이스를 지정한 클래스에서 진행하고..

JAVA 2021.11.20

[JAVA] 다형성과 Casting

다형성(Polymorphism) 1. 오버로딩(Overloading) 매개변수의 이름 또는 타입을 다르게 설정하면 같은 이름의 메소드를 선언할 수 있다. 2. 오버라이딩(Overriding) 부모의 메소드를 상속받은 후 자식 클래스에서 재정의하는 것. --------------------------------------------------------------------------------- 1. 클래스는 타입이다. 2. 모든 자식은 부모타입이다. Casting up casting : 자식 값을 부모 타입으로 형변환 부모타입 객체명 = new 자식 생성자(); down casting : up casting된 객체를 자식 타입으로 형변환 자식타입 객체명 = up casting된 객체; ※ 부모 값을 자..

JAVA 2021.11.17

[JAVA] 상속, 오버라이딩

기본구조 프로젝트 패키지(소문자) 클래스(대문자) 메소드(이름()) 소스코드 변수와 상수 출력메소드 : 개발자를 위한 도구 입력메소드 : Scanner 연산자 우선순위 최우선 단항 산술 쉬프트 관계 논리 삼항 대입 결합성 하나의 문장에 같은 우선순위 연산자가 나타나면 알맞는 방향으로 결합되어 연산되는 성질 제어문 조건문 if switch 반복문 for : 반복횟수를 알 때 while : 반복횟수를 모를 때 do~while : 한 번은 무조건 실행되어야 할 때 배열 저장공간의 나열 1. 이름을 하나만 붙여도 접근 가능 2. 규칙성이 없는 값에 규칙성을 부여하기 위해서 지우개 우산 마우스 키보드 메소드 1. 이름() 단, 키워드() 메소드 아니다. 2. 저장공간 - 메모리에 저장공간이 할당, 사용한 부분이 ..

JAVA 2021.10.14

[JAVA] 생성자와 은닉성

1. this 1-1. 현재 클래스의 메서드를 의미하는 용도로서의 this class Foo{ public String getName(){ String name = "자바학생"; return name; } public void sayName(){ String myname = this.getName(); System.out.println(myname); } } -> this.getName()메서드는 this 키워드를 사용하여 현재 클래스 안에 포함된 다른 메서드임을 명시하고 있다. -> 하지만 메서드의 경우 다른 클래스의 메서드를 이름만으로 호출할 수 있는 방법이 없기 때문에, this.getName()이 아닌 getName()만 사용하더라도 코드 가독성의 문제는 없다. 2. 클래스, 메서드, 상수의 이름..

JAVA 2021.10.09

[JAVA] 클래스와 this

1. 클래스 1-1. 클래스를 정의하면서 멤버변수에 값을 직접 대입하는 경우 - 앞 예제(Main01.java)는 객체를 생성함과 동시에 객체 안에 name 변수와 age변수가 할당된 값을 포함하게 된다. - 같은 클래스로 객체를 여러개 생성할 경우, 모든 객체가 동일한 값을 갖게 된다. - 같은 클래스를 통하여 생성된 객체라 할지라도 서로 다른 값을 대입하면 서로 독립적인 형태로 존재하게 된다. 1-2. 값이 대입되지 않은 멤버변수를 갖는 클래스 - 클래스란 객체를 위한 틀을 제공하는 것이기 때문에 클래스 작성 과정에서 멤버변수에 대입된 값은, 객체를 통하여 멤버변수의 값을 지정하기 전까지 사용될 "기본값"으로서의 의미이다. - 객체를 통하여 새로운 값이 대입되면 클래스 작성시에 멤버변수에 대입한 값을..

JAVA 2021.10.07

[JAVA] 메서드와 클래스

1. 메서드(method) 1-1. main( ) 메서드 - java프로그램이 시작되는 시작점을 의미하는 main은 'public', 'static', 'void', 'main', '(String[] args)'라는 키워드로 구성된 하나의 {...} 블록이다. 1-2. 메서드 - f(x) = x + 1 - 위와 같이 정의된 함수는 다음과 같이 여러번 재사용이 가능하다. - f(1) -> 2 f(2) -> 3 f(5) -> 6 - 프로그램의 함수 = 메서드 -> 특정 기능(=연산)을 그룹화 해서 재사용하기 위한 단위 public static void 메서드이름( ){ .. 수행할 연산식 .. } - 메서드의 호출 -> 정의된 메서드는 다른 메서드를 구성하는 {...} 안에서 다음의 형식으로 사용될 수 있으..

JAVA 2021.10.05

[JAVA] 배열

1. 배열 1-1. 배열의 이해 - 변수를 그룹으로 묶은 형태의 한 종류로서, 사물함 같은 형태를 갖고 있다. - 하나의 배열 안에는 같은 종류(데이터 형)의 값들만 저장될 수 있다. 1-2. 배열을 만드는 방법 - 배열의 선언 데이터형[ ] 배열 이름; - 배열의 생성 - 변수를 저장할 수 있는 사물함을 생성한다. 배열이름 = new 데이터형[크기]; - 배열 생성의 예 - 3개의 int형 변수를 저장할 수 있는 배열 생성 int[] grade; // 여러개의 int형 변수를 저장할 수 있는 배열의 선언 grade = new int[3]; // 배열의 칸을 3칸으로 할당 - 배열의 선언과 크기 지정에 대한 일괄처리 데이터형[] 배열이름 = new 데이터형[크기]; - 배열 생성의 예 - 3개의 int형..

JAVA 2021.10.01

[JAVA] 반복문

1. 반복문 1-1. for문 1-2. while문 - while문 역시 for문과 마찬가지로 반복적인 처리를 수행하는 문법이다. - for문은 초기식, 조건식, 증감식을 모두 내장하는 반면, while문은 조건식만을 내장하기 때문에 초기식과 증감식을 외부에 따로 정의해주어야 한다. 1-3. do~while문 - 조건의 판별을 나중에 수행하는 반복문 형태 - 초기식을 설정한 후 do{...}안의 문장을 우선적으로 1회 실행하고 조건을 판별하므로, 조건이 참이 아니더라도 최소 1회는 실행된다. 1-3. 무한루프 - 증감식이 설정되지 않거나, 증감식이 수행되더라도 조건식이 거짓이 되지 않는 형태 - 조건식이 항상 참으므로, 반복문이 종료되지 않는다. - 프로그램이 PC의 자원을 매우 많이 사용하게 되므로, ..

JAVA 2021.09.28