분류 전체보기

오버라이딩이란 자바에서는 서브클래스에서 슈퍼클래스와 완전히 동일한 메소드를 선언할 수 있는 기능이 있습니다. 오버로딩의 경우 인자 개수나 타입이 달라야 합니다. 그러나 오버라이딩의 경우는 인자 개수나 타입이 완전히 일치할 수 있습니다. 오버라이딩의 경우 메소드 호출방법 메소드의 이름과 인수의 개수 및 타입이 완전히 같은 메소드가 서브 및 슈퍼클래스에 모두 정의된 경우 서브클래스에서 새롭게 정의한 메소드가 호출됩니다. 이처럼 서브클래스의 메소드가 슈퍼클래스의 메소드를 대신하는 기능을 오버라이딩이라고 합니다. 오버라이딩 장점 같은 기능을 구현한 서브클래스에서 동일한 메소드를 사용함으로 써 코드의 복잡성과 일관성을 제공할 수 있습니다. 예제 코드 eov1 에서 매개인자가 하나인 show 함수를 호출하면 서브클..
자바 접근제한자 자바에서는 변수 접근제한을 위해 몇가지 기능을 제공하고 있습니다. 변수 선언 시 앞 부분에 명시해줌으로 써 지정할 수 있고 public, private, protected 로 접근제한이 가능합니다. 접근제한 함수 기능 접근제한 함수 기능 public 모든 곳에서 접근 가능 private 자기 자신 클래스에서만 접근 가능 protected 자기 자신 클래스와 상속된 클래스에서 접근 가능 왜 이렇게 나뉘어져 있을까? 자바는 캡슐화로써 외부에서 접근할 수 없도록 코드가 구성이 되어 있어야 합니다. public 어디에서나 접근이 가능한 접근제한입니다. 사용에는 편리하지만 public 으로 정의된 변수에는 외부코드에서도 접근이 가능하기 때문에 위험합니다. private 그렇게 해서 나온 기능이 p..
this 와 super 의 차이점 this 와 super 의 차이점은 다음과 같습니다. 함수 기능 this ( ) 그 클래스의 다른 생성자를 호출 super ( ) 슈퍼 클래스의 생성자를 호출 this 와 super 의 공통점 두 메소드 모두 생성자의 가장 윗 부분에 위치해야 합니다. 왜냐하면 생성자는 객체가 생성될 때 가장 먼저 호출되는 함수이며 this 와 super 는 생성자 호출에 사용되는 메소드이기 때문입니다. 만약 오버로딩 된 생성자를 선택해야 하는 경우 this 또는 super 에 호출하길 원하는 생성자의 인수를 대입하면 됩니다. 예제 코드 B1 클래스의 객체를 생성합니다. A1 클래스를 상속받았기 때문에 A1의 생성자가 먼저 호출이 됩니다. 21 번째 줄에 super 를 명시해 두긴 했지만..
슈퍼클래스와 서브클래스 슈퍼클래스와 서브클래스는 상속의 기능으로 연결되어 있습니다. 베이스가 되는 클래스를 슈퍼클래스, 슈퍼클래스의 멤버와 메소드를 전달받아 사용할 수 있는 서브클래스 입니다. 서브클래스의 super 메소드 서브클래스는 슈퍼클래스의 메소드를 사용할 수 있다보니 생성자또한 사용할 수 있습니다. 그렇지만 서브클래스의 객체를 만들때는 슈퍼클래스의 객체를 따로 생성하지 않습니다. 그렇다면 슈퍼클래스의 생성자가 여러개인 경우 어떻게 호출을 해야할까요? super 메소드 서브클래스에서 super 메소드를 사용해서 슈퍼클래스의 생성자를 사용할 수 있습니다. 서브클래스의 super 메소드의 인자에 따라 슈퍼클래스의 생성자가 다르게 호출됩니다. 참고로 super 메소드는 생성자를 호출하는 기능이기 때문에..
상속이란 새로 확장된 클래스가 기존 클래스의 멤버를 물려받는 것을 상속이라고 합니다. 상솓받은 클래스는 기존 클래스의 멤버를 물려받아 동작하게끔 되어 있습니다. 상속을 사용하는 이유 서브클래스에서는 상속받은 멤버와 추가된 멤버를 모두 같은 방법으로 호출할 수 있습니다. 이해가 안되시는 분들은 아래의 예제 코드를 참고해 주세요. 이처럼 클래스를 확장하면 이미 설계된 클래스를 바탕으로 새로운 클래스를 보다 효율적으로 만들 수 있어 결과적으로 전체 프로그램의 작성 능률을 높일 수 있습니다. 예 자동차의 기능을 정의하는 클래스가 있습니다. 이 때 특수한 자동차인 경주용 차의 클래스를 생성하려고 합니다. 경주용 차는 자동차의 일종이므로 많은 공통점을 가지고 있습니다. 따라서 자동차 클래스를 바탕으로 경주용 차 클..
수학적인 계산 기능을 구현한 클래스 수학적 계산 기능을 구현한 Math 클래스가 있습니다. Math 클래스에는 여러 편리한 기능을 사용할 수 있는 함수를 제공합니다. Math 클래스의 주요 메소드 메소드명 기능 double abs(double a) double 형 인수의 절대값을 반환 int abs(int a) int 형 인수의 절대값을 반환 double ceil(double a) 인수의 올림 값을 반환 double cos(double a) 인수의 코사인 값을 반환 double floor(double a) 인수의 내림값을 반환 double max(double a, double b) 2개의 double 형 인수 중 큰 값을 반환 int max(int a, int b) 2개의 int 형 인수 중 큰 값을 반..
숫자를 문자로 변환하는 방법 toString 숫자를 문자로 변환하기 위해서는 toString 함수를 사용해야 합니다. toString 함수는 각 객체 클래스의 함수입니다. 문자열로 바꾸기 위해선 타입별에 따른 객체를 사용해 주어야 합니다. 용도 함수 정수(Int) Integer.toString 실수(Float) Float.toString 실수(Double) Double.toString 롱(Long) Long.toString 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class convertIntString { public static void main(String[] args) { // TODO Auto-generated method..
문자열 처리 클래스 문자열 처리를 위해 JDK 에서 제공하는 String 클래스가 있습니다. String 클래스에서는 여러 유용한 기능을 사용할 수 있는 함수를 제공합니다. 그러나 String 클래스는 문자열의 내용을 변경할 수 없습니다. 대신 StringBuffer 클래스를 사용하여 변경할 수 있습니다. 문자열을 역순으로 출력하는 reverse StringBuffer 클래스에서는 문자열을 역순으로 출력하는 reverse 함수를 제공합니다. reverse 함수의 인자는 없으며 반환값은 StringBuffer 입니다. 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 public class StringBuffer_reverseTest { public static void main(String..
문자열 처리 클래스 문자열 처리를 위해 JDK 에서 제공하는 String 클래스가 있습니다. String 클래스에서는 여러 유용한 기능을 사용할 수 있는 함수를 제공합니다. 그러나 String 클래스는 문자열의 내용을 변경할 수는 없습니다. 대신 StringBuffer 클래스를 사용하여 변경할 수 있습니다. 특정 위치의 문자열을 다른 문자열로 대체하는 replace StringBuffer 클래스에서는 특정 위치의 문자열을 다른 문자열로 변경하는 replace 함수를 제공합니다. 매개인자는 시작과 끝 위치와 대체 문자열이며 반환값은 StringBuffer 입니다. 시작 인덱스부터 시작해서 끝 전 인덱스까지의 문자열을 치환합니다. 예제 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 public ..
문자열 처리 클래스 문자열 처리를 위해 JDK 에서 제공하는 String 클래스가 있습니다. String 클래스에서는 여러 유용한 기능을 사용할 수 있는 함수를 제공합니다. 그러나 String 클래스는 문자열의 내용을 변경할 수는 없습니다. 대신 StringBuffer 클래스를 사용하여 변경할 수 있습니다. 특정 위치의 문자 추가하는 insert StringBuffer 클래스에서는 특정 위치의 문자열을 추가할 수 있는 insert 함수를 제공합니다. 매개인자는 위치와 문자열이고 반환값은 StringBuffer 입니다. 예제 코드 2를 입력했지만 3번째 문자위치부터 입력되었는데 이는 문자열의 첫 번째는 0부터 시작되기 때문입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 public class..
꽁담
'분류 전체보기' 카테고리의 글 목록 (15 Page)