728x90
반응형

Programming Language 59

[Java] 프로그램 오류

컴파일 에러: 컴파일 시에 발생하는 에러 런타임 에러: 실행 시에 발생하는 에러 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 에러(error): 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 ex) 메모리 부족(OutOfMemoryError), 스택오버플로우(StackOverflowError) 예외(exception): 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 Exception클래스들: 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외 RuntimeException클래스들: 프로그래머의 실수로 발생하는 예외

[Java] 인터페이스(interface)

abstract class 클래스이름 implements 인터페이스이름 { // 인터페이스 일부 구현 } 인터페이스(interface) - 일종의 추상클래스. 하지만 추상클래스를 부분적으로 완성된 '미완성 설계도'이지만 인터페이스는 구현된 것이 아무 것도 없고 밑그림만 그려져 있는 '기본 설계도'라고 생각하면 됨. - 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화 정도가 높아서 추상클래스와 다르게 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. - 접근제어자로 public 또는 default를 사용할 수 있다. interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메서드이름 (매개변수목록); } - 일반적인..

[Java] 다형성(polymorphism)

다형성 - 여러 가지 형태를 가질 수 있는 능력 - Java에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 구현 즉, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다. class Car{ int wheel; int location; void wheel(int a) = {wheel = a;} void forward() = {location++;} void backward() = {location--;} } class SuperCar extends Car{ boolean ceillingOpen; void Boost() {...} } 다음과 같이 기본적으로 생성된 인스턴스를 다루기 위해서, 인스턴스의 타입과 일치하는 타입의 참조변수를 사용하였다...

[Java] 제어자(modifier)

제어자(modifier) - 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여한다. - 접근 제어자와 그 외의 제어자로 나눌 수 있다. * 접근 제어자: public, protected, default, private * 그 외: static, final, abstract, native, transient, synchronized, volatile, strictfp - 제어자는 클래스나 멈버변수, 메서드에 주로 사용되며, 하나의 대상에 대해 여러 제어자를 조합하여 사용할 수 있다. 단, 접근 제어자는 한 번에 하나만 선택해서 사용해야한다. static - 클래스의, 공통적인 - 클래스변수(static 멤버변수)는 하나의 변수를 모든 인스턴스가 공유하는 형태이므로 인스턴스에 관계없이..

[Java] 오버라이딩(overriding)

오버라이딩(overriding) - 조상 클래스로부터 상속받은 메서드 내용을 변경하는 것. - 오버라이딩은 메서드의 내용만을 새로 작성하는 것이므로 메서드의 선언부는 조상의 것과 완전히 일치해야 하므로 다음과 같은 조건을 충족해야 한다. * 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 1) 이름이 같아야 한다. 2) 매개변수가 같아야 한다. 3) 반환타입이 같아야 한다. 즉, 선언부가 서로 일치해야 한다는 것이다. (+) 접근 제어자(access modifier)와 예외(exception)는 제한된 조건 하에서만 다르게 변경할 수 있다. * 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. => 접근 제어자의 접근범위는 public, protected, (defaul..

[Java] 상속(inheritance)

상속 - 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. - 장점: 1) 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있다. 2) 코드를 공통적으로 관리할 수 있어 코드의 추가 및 변경이 매우 용이하다. => 클래스 간의 상속관계를 맺어주면 자식 클래스들의 공통된 부분은 조상 클래스에서 관리하고, 자손 클래스는 자신에 정의된 멤버들만 관리하면 되기 때문이다. 자바에서 상속을 구현하기 위해서는 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 extends와 함께 써주면 된다. class SportsCar extends Car { /// } 위 두 클래스는 서로 상속관계에 있다고 하며, 상속해주는 클래스(Car)를 '조상 클래스', 상속받는 클래스(SportsC..

[Java] 오버로딩(overloading)

오버로딩(overloading): 한 클래스 내에 메서드의 이름이 중복되더라도 매개변수의 개수 또는 타입이 다르다면 같은 이름을 사용하여 메서드를 정의할 수 있다. 이때 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩(method overloading) 또는 오버로딩(overloading)이라고 한다. * 반환 타입은 오버로딩을 구현하는데 아무런 상관이 없다. 매개변수에 의해서만 오버로딩된 메서드들이 구별된다. * 매개변수의 이름만 다른 것은 오버로딩이 성립하지 않는다. int swap(int a, long b) {...} int swap(long a, int b) {...} 위와 같이 int 형, long형 매개변수가 각각 하나씩 선언되어있지만 순서가 다른 경우는 호출 시 ..

[Java] 변수의 종류

선언 위치에 따라 변수를 클래스변수, 인스턴스변수, 지역변수 총 세 가지로 구분할 수 있다. 클래스 변수(class variable): 클래스 영역에 선언된 변수 중 static이 붙은 것 - 클래스가 메모리에 올라갈 때 생성되고, 프로그램이 종료될 때까지 유지된다. - 모든 인스턴스가 공통된 저장공간(변수)를 공유한다. - 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성일 때 클래스 변수를 사용한다. - 인스턴스를 생성하지 않고 바로 사용할 수 있다. 형식) 클래스이름.클래스변수 - public을 붙이면 같은 프로그램 내에서 어디서나 접근할 수 있는 전역변수(global variable)의 성격을 갖는다. 인스턴스 변수(instance variable): 클래스 영역에 선언된 변수 중 s..

[Java] 클래스와 객체

클래스란? - 객체를 정의해놓은 것 - 객체의 설계도, 틀 - 클래스는 객체를 생성하는데 사용됨 객체란? - 실제로 존재하는 것, 사물 또는 개념 - 객체가 가지고 있는 기능과 속성에 따라 그 용도가 다름 - 유형의 객체 뿐만 아니라 무형의 객체(논리, 개념) 등도 포함 - 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것 객체를 사용한다 = 객체가 가지고 있는 속성과 기능을 사용한다. 클래스의 인스턴스화(instantiate) : 클래스로부터 객체를 만드는 과정 클래스의 인스턴스(instance): 어떤 클래스로부터 만들어진 객체 - 인스턴스는 객체와 같은 의미이지만, 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖고 있으며, 언스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는..

[Java] 특수 문자 다루기

특수 문자 문자 리터럴 tab \t backspace \b form feed \f new line \n carriage return \r 역슬래쉬(\) \\ 작은따옴표 \' 큰따옴표 \" 유니코드(16진수)문자 \u유니코드 form feed: 0x0c, 프린트 출력 시 현재 페이지를 마친다. (프린트 출력 시 현재 페이지 마치고 다음 페이지로 넘어가기 위해 사용) new line: 0x0a, 화면에 출력 시 다음 행으로 줄바꿈. carriage return: 행의 맨 앞 부분으로 커서를 이동.

728x90
반응형