반응형

Java 69

[Java] Object 클래스, String 클래스, Wrapper(래퍼) 클래스

[Java] Object 클래스(최상위 클래스), String 클래스 1. Object 클래스 (최상위 클래스) Object 클래스는 java의 모든 클래스의 최고 조상 클래스이다. java.lang 패키지 안에 있는 클래스이다. (java.lang.Object) eclipse 사용시 'Object'라고 적고 F1을 누르면 자세한 내용을 볼 수 있다. (Program Files\Java\jdk-(버전)\lib\src\java.base\java\lang\Object.java에 위치해있다.) 모든 클래스는 Object 클래스에서 상속을 받으며, 모든 클래스는 Object 클래스의 메서드를 사용할 수 있고, 모든 클래스는 Object 클래스의 일부 메서드를 재정의하여 사용할 수 있다. 이 Object 클래스에..

Java 2021.08.18

[Java, 객체지향] 템플릿 메서드란?

[Java, 객체지향] 템플릿 메서드란? '템플릿'은 말 그대로 틀이나 견본을 의미한다. 그렇다면 '템플릿 메서드'는 무엇일까? 템플릿 메서드는 추상 메서드나 구현된 메서드를 활용하여 전체의 흐름(시나리오)을 정의해 놓은 메서드를 의미한다. final로 선언하여 재정의할 수 없게 한다. '템플릿 메서드 패턴'은 사실 Java에서 쓰이는 말은 아니다. 디자인 패턴의 일종으로, 프레임 워크에서 많이 사용되는 설계 패턴이다. 추상 클래스로 선언된 상위 클래스에서 추상 메서드를 이용하여 전체 구현의 흐름을 정의하고, 메서드 구현의 구체적인 부분은 하위 클래스에 위임한다. 그렇지만 하위 클래스가 다른 구현을 했다고 해도 템플릿 메서드에 정의된 시나리오대로 수행된다.

Java 2021.08.17

[Java, 객체지향] 인터페이스란? (Interface)

[Java, 객체지향] 인터페이스란? (Interface) 인터페이스란? 인터페이스는 클라이언트 프로그램에 어떤 메서드를 제공하는지 알려주는 명세(specification) 또는 약속이다. '한 객체가 어떤 인터페이스의 타입이다'라는 것은, 그 인터페이스의 메서드를 구현했다는 의미이다. 클라이언트 프로그램은 실제 구현 내용을 모르더라도 인터페이스의 정의만 알면 그 객체를 사용할 수 있다. 쉽게 말하자면, 인터페이스는 추상 메서드의 집합이다. 즉, 구현된 것이 전혀 없는 껍데기와 같다. (jdk 1.8 이상을 제외하고선, 인터페이스의 모든 멤버는 public이다) interface 인터페이스명 { public static final 타입 상수명 = 값; public abstract 메서드명(); } 이때,..

Java 2021.08.17

[Java, 객체지향] 추상 클래스, 추상 메서드란?

[Java, 객체지향] 추상 클래스, 추상 메서드란? 추상 클래스는 추상 메서드를 가지고 있는 클래스를 의미한다. 추상 메서드는 body 부분( { } 또는 구현부 )이 없는 미완성 메서드이고, 추상 클래스는 미완성 클래스를 의미한다. 추상클래스에는 아래와 같이 abstract 제어자를 적어준다. abstract class Customer { abstract void grade(); // { }로 이루어진 메서드 body가 없다. } 미완성인 만큼, 추상 클래스로는 인스턴스 생성이 불가하다. 그렇다면 이러한 추상 클래스는 왜 만드는 것일까? 이는 바로, 미완성이긴 해도 그 자체로 다른 클래스 작성에 도움이 되기 때문이다. 자손마다 메서드 구현 방식이 다른 경우에 추상 클래스를 이용하면 편리하다. 상속을 ..

Java 2021.08.16

[Java, 객체지향] 제어자란? (modifier) (접근 제어자 & static, final, abstract)

[Java, 객체지향] 제어자란? (modifier) (static, final, abstract) modifier란? Java에서 modifier(제어자, 제한자)란 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미를 부여하는 것이다. modifier에는 접근 제어자와 접근 제어자가 아닌 것이 있다. 1. 접근 제어자 : public, protected, 선언되지 않음(default), private 접근 제어자에 관련된 내용은 아래 링크 속 하단에 정리해두었다. https://unit-15.tistory.com/entry/Java-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%81%B4%EB%9E%98%EC%8A%A4-%EC%83%81%EC%86%8Dinherit..

Java 2021.08.12

[Java, 객체지향] 패키지란?

[Java, 객체지향] 패키지란? 패키지란? (Package) 패키지는 서로 관련된 클래스의 묶음을 의미한다. 클래스는 클래스 파일이고(*.class), 패키지는 폴더라고 할 수 있다. 클래스 패스란? (Classpath) 클래스 패스는 클래스 파일의 위치를 알려주는 경로이다. import문 생성 단축키 클래스를 사용할 때 원래는 패키지 이름을 다 입력해야 한다. 하지만 import문을 이용하면 이를 생략해도 된다. import문을 자동으로 삽입해주는 단축키는 'Crtl+Shift+O'이다. import문 선언 import 패키지.클래스; 또는 import 패키지.*; // 모든 클래스를 import Java를 사용하면서 많이 사용하는 메서드인 System.out.println(); 함수는 알고보면 Sy..

Java 2021.08.12

[Java, 객체지향] 지역 변수, 멤버 변수의 초기화

[Java, 객체지향] 지역 변수, 멤버 변수의 초기화 아래 링크 참고 https://unit-15.tistory.com/entry/Java-%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%EC%84%A0%EC%96%B8%EC%9C%84%EC%B9%98%EC%97%90-%EB%94%B0%EB%A5%B8-%EB%B3%80%EC%88%98-%EC%A2%85%EB%A5%98 지역변수는 사용전 꼭 수동 초기화 해야한다. 반면, 멤버 변수는 자동 초기화된다. 자동 초기화될 때의 기본값은 자료형마다 다르다. 숫자형의 기본값은 0, boolean의 기본값은 false, 참조형의 기본값은 null 멤버변수의 초기화에는 세 가지 방법이 있다. 1. 명시적 초기화 대입연산자 '='를 이용한 초기화 방법..

Java 2021.08.11

[Java, 객체지향] 생성자(constructor) 의미와 종류 (+this)

[Java, 객체지향] 생성자(constructor) 의미와 종류 (+this) 생성자 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드를 생성자라고 한다. 즉, 생성자는 인스턴스 변수의 초기화 작업에 주로 사용된다. 생성자를 만들 때, 생성자의 이름은 클래스 이름과 같아야 한다. 또한 생성자는 리턴값이 없다. (= void를 붙이지 않는다.) 모든 클래스는 반드시 생성자를 가져야 한다. 생성자에는 기본 생성자와 매개변수가 있는 생성자가 있다. 1. 기본 생성자 (default constructor) 매개변수가 없는 생성자이며, 생성자가 하나도 없을 때는 컴파일러가 자동으로 추가해준다. 형식: 클래스이름( ) { } 2. 매개변수가 있는 생성자 매개변수가 있는 생성자이다. 기본 생성자 없이 매개변..

Java 2021.08.11

[Java, 객체지향] 오버로딩이란? (overloading)

[Java, 객체지향] 오버로딩이란? (overloading) 오버로딩 (Overloading) overload는 영어로 '과적하다'라는 뜻으로, overloading은 한 클래스 안에 같은 이름의 메서드를 여러 개 정의하는 것이다. 오버로딩이 성립하려면 아래 조건을 모두 만족해야 한다. 메서드 이름이 같아야 한다. 매개변수의 개수 또는 타입이 달라야 한다. 반환(return) 타입은 영향 없다. (=return 타입이 다르다고 오버로딩이 성립하는 게 아니다) ex. long add(int a, long b) { return a+b; } long add(long a, int b) { return a+b; } 변수는 같은 이름이 여러 개 있을 수 없다. 메서드도 변수처럼 같은 이름이 여러 개 있으면 안 될..

Java 2021.08.11
반응형