728x90
반응형

Java 22

[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: 행의 맨 앞 부분으로 커서를 이동.

[Java] 출력

println()은 변수의 값을 그대로 출력한다. 따라서 값을 변환하지 않고서는 다른 형식으로 출력할 수 없다. 이를 보완하는 것이 printf()이다. printf()는 지시자(specifier)를 통해 변수의 값을 여러 가지 형식으로 변환하여 출력하는 기능을 가지고 있다. printf() 지시자 - %b : boolean 형식으로 출력 - %d : 10진(decimal) 정수의 형식으로 출력 (+) %5d : 오른쪽 맞춤 5자리, %-5d: 왼쪽 맞춤 5자리, %05d: 오른쪽 맞춤 5자리 + 빈공간은 0으로 표시 - %o : 8진(octal) 정수의 형식으로 출력 - %x, %X : 16진(hexa-decimal) 정수의 형식으로 출력(%X는 16진수에 사용되는 접두사와 영문자를 대문자로 출력) (..

[Java] 변수

변수: 단 하나의 값을 저장할 수 있는 메모리 공간 변수타입: 변수에 저장될 값이 어떤 타입(type)인지를 지정 변수이름: 변수에 붙인 이름(메모리 공간에 이름을 붙여주는 것) 변수를 선언하면, 메모리의 빈 공간에 변수타입에 알맞은 크기의 저장공간이 확보되고, 앞으로 이 저장공간은 변수이름을 통해 사용할 수 있게 된다. 변수의 초기화: 변수를 사용하기 전에 처음으로 값을 저장하는 것 Why? 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 garbage value가 남아있을 수 있기 때문 (+) 지역변수는 사용되기 전에 초기화를 반드시 해야 하지만 클래스변수와 인스턴스변수는 초기화를 생략할 수 있다. 식별자(identifier): 프로그래밍에서 사용되는 모든 이름, 식별자는 같은..

[Java] public static void main(String[] args) 분석

class 클래스 이름 { public static void main(String[] args) { } } public static void main(String[] args) 는 main메서드의 선언부로 프로그램을 실행할 때 'java.exe'에 의해 호출될 수 있도록 미리 약속된 부분이므로 항상 똑같이 적어주어야 한다. - public 접근 제한자의 종류로는 pulbic, private, protected가 있다. main 함수 모든 실행프로그램의 기본이기에 어디에서나 접근할 수 있어야 한다. 따라서 제한자로 public을 사용하여야 한다. +) private는 자기 자신 클래스 안에서만, protected는 자기 자신 클래스 안, 같은 패키지 또는 자식 클래스에서만 사용 가능 - static 메모리..

728x90
반응형