전체 글 54

[JAVA] 예외

예외 Exception Handling 프로그램 오류 프로그램 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 경우, 이러한 결과를 초래하는 원인 컴파일 에러: 컴파일 시에 발생하는 에러 런타임 에러: 실행 시에 발생하는 에러 논리적 에러: 실행은 되지만 의도와 다르게 동작하는 것 자바에서는 실행(runtime)시 발생할 수 있는 프로그램 오류를 에러error와 예외exception으로 구분한다. 에러는 메모리부족OutOfMemoryError나 스택오버플로우StackOverflowError와 같이 일단 발생하면 복구할 수 없는 심각한 오류이고, 예외는 발생하더라도 수습될 수 있는 비교적 덜 심각한 것이다. 에러가 발생하면 프로그램의 비정상적인 종료를 막을 길이 없지만, 예외는 발생하더라..

STUDY/JAVA 2022.04.03

[JAVA] 추상

추상 클래스 abstract class 클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도이다. 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. 추상클래스 자체로는 클래스로서의 역할을 다 못하지만 새로운 클래스를 작성하는데 있어 바탕이 되는 조상클래스로서 중요한 의미를 갖는다. 추상화: 클래스간의 공통점을 찾아내어 공통의 조상을 만드는 작업 구체화: 상속을 통해 클래스를 구현, 확장하는 작업 추상클래스의 작성 abstract class 클래스이름 { ;; } // end class 추상클래스에도 생성자가 있으며 멤버변수와 메서드도 가질 수 있다. 추상 메서드 abstract method 선언부만 작성하고 구현부는 작성하지 않..

STUDY/JAVA 2022.04.03

[JAVA] 다형성

다형성 [Polymorphism] : 여러가지 형태를 가질 수 있는 능력 같은 부모타입이지만 부모타입 변수에 대입된 자식객체가 부모타입의 선언된 메소드를 재정의한 경우, 부모타입 메소드를 수행했을 때 대입된 자식객체의 재정의된 다양한 성질을 가지는 메소드가 수행됨으로써 다양한 결과가 나오는 이 성질을 "다형성"이라고 한다. 부모 타입에는 모든 자식 객체가 대입 가능하다. = 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다. 참조변수가 사용할 수 있는 멤버의 개수는 인스턴스의 멤버 개수보다 같거나 적어야 한다. (* 클래스는 상속을 통해서 확장될 수는 있어도 축소될 수는 없으므로, 조상 인스턴스의 멤버 개수는 자손 인스턴스의 멤버 개수보다 항상 적거나 같다.) 조상타입의 참조변..

STUDY/JAVA 2022.04.02

[JAVA] 인터페이스

인터페이스 일종의 추상클래스이다. 추상클래스처럼 추상메소드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서도 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다. 인터페이스 선언 멤버: 가. static final 상수 선언 나. 추상 메소드 선언 -----------------------@until 7 다. 디폴트 메소드(인스턴스 메소드) 라. 정적 메소드(class에 소속된 메소드) 인터페이스 = 커뮤니케이션 개발코드와 객체가 서로 통신하는 접점 - 개발코드는 인터페이스의 메소드만 알고 있으면 OK 인터페이스의 작성 클래스를 작성하는 것과 유사하지만 키워드를 class 대신 i..

STUDY/JAVA 2022.03.31

[JAVA] 제어자

제어자Modifier 제어자는 클래스, 변수, 또는 메소드의 선언부와 함게 사용되어 부가적인 의미를 부여한다. 접근제어자: public, protected, default, private 그외: static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버 변수에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. static - 클래스의, 공통적인 static이 사용될 수 있는 곳 -> 멤버변수, 메소드, 초기화 블록 인스턴스 변수는 하나의 클래스로부터 생성되었더라도 각기 다른 값을 유지하지만 클래스변수(static 멤버변수)는 인스턴스에 관계 없이 같은 값을 갖는다. 하..

STUDY/JAVA 2022.03.30

[JAVA] import문

import문 소스코드를 작성할 때 다른 패키지의 클래스를 사용하려면 패키지명이 포함된 클래스 이름을 사용해야 한다. 이러한 불편함을 해결하기 위해서는, 클래스의 코드를 작성하기 전에 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시해주면 소스코드에서 사용되는 클래스 이름에서 패키지명은 생략할 수 있다. import문의 역할은 컴파일러에게 소스파일에 사용된 클래스의 패키지에 대한 정보를 제공하는 것이다. 일반적인 소스 파일(*.java)의 구성 1. package문 2. import문 3. 클래스 선언 import문의 선언 모든 소스파일에서 import문은 package문 다음에, 그리고 클래스 선언문 이전에 위치한다. 한 소스파일에서 여러 번 선언할 수 있다. import Package.c..

STUDY/JAVA 2022.03.30

[JAVA] String 타입

String 타입 "문자열 객체"를 찍어내는 틀 문자열을 저장하는 클래스 타입 String name = "ABC"; Lvalue = Rvalue 그릇 = 주소 보관 변수 똑같은 문자열은 단 한 번만 객체가 생성된다. String name2 = "ABC"; 같은 주소를 갖는다. Intergar number = 100; intergar : 정수를 찍어내는 틀(class), 참조 타입 중 하나 Integar number = new Integar(100); 정수의 자리에는 정수가 들어가야 한다.

STUDY/JAVA 2022.03.30

[JAVA] 오버라이딩과 오버로딩

오버라이딩 조상 클래스로부터 상속받은 메소드의 내용을 변경하는 것 오버라이딩의 조건 오버라이딩은 메소드의 내용만을 새로 작성하는 것이므로 메소드의 선언부는 조상의 것과 일치해야 한다. 자손클래스에서 오버라이딩하는 메소드는 조상 클래스의 메소드와 - 이름이 같아야 한다. - 매개 변수가 같아야 한다. - 반환 타입이 같아야 한다. - 단, 접근 제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다. 접근제어자와 예외는 제한된 조건 하에서만 다르게 변경할 수 있다. - 접근 제어자는 조상 클래스의 메소드보다 좁은 범위로 변경할 수 없다. - 조상 클래스의 메소드보다 많은 수의 예외를 선언할 수 없다. 오버로딩 : 기존에 없는 새로운 메소드를 정의하는 것 package Inheritance; publi..

STUDY/JAVA 2022.03.29

[JAVA] 상속

상속 상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이이다. 상속을 통해 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 용이하다. ==> 이러한 특징은 코드의 재사용성을 높이고, 중복을 제거한다. (생산성, 유지보수에 기여) 상속을 구현하는 방법 새로 작성하고자 하는 클래스 이름 extends 상속받고자 하는 기본 클래스 이름 조상 클래스: 상속해주는 클래스 = 부모, 상위, 기반 클래스 자손 클래스: 상속 받는 클래스 = 자식, 하위, 파생된 class Parent { int age; } class Child extends Parent { void play() { System.out.println("..

STUDY/JAVA 2022.03.21