본문 바로가기

728x90
반응형

Java

(17)
[Java] super, super 생성자 super super 키워드를 사용하면 SubClass(자식클래스)에서 SuperClass(부모클래스)의 멤버 및 메서드에 접근할 수 있다. 상속을 받았으니 당연히 super 키워드 없이도 사용이 가능하지만 this 키워드처럼 활용할 수 있다. 따라서 아래 코드처럼 부모클래스의 멤버에 접근하는 것이 가능하다. class A { int a;}class B extends A { int a, b; B (int a, int b) { this.a = a + super.a; this.b = b; }}      SuperClass 생성자 SubClass 객체를 생성하면 SuperClass의 생성자가 먼저 호출되고 SubClass의 생성자가 호출된다. 이는 아래의 코드를 통해서 확인할 ..
[Java] 업캐스팅 (UpCasting), 다운캐스팅 (DownCasting) 업캐스팅 (UpCasting) 부모클래스 타입으로 자식클래스 객체를 호출하는 것을 업캐스팅이라고 한다. 업캐스팅을 사용하게 되면 자식클래스를 부모클래스 타입으로 다루게 되기 때문에 부모클래스의 멤버와 메서드에만접근이 가능하다. 아래 코드처럼 작성하면 a, b 인스턴스는 overriding을 사용한 Print 메서드를 호출하지만 Number 타입을 사용할 수 있다. class Number { public int i, j; public void Print() { System.out.println(i); System.out.println(j); }}class Plus extends Number { @Override public void Print() { ..
[Java] 오버라이딩 (Overriding) 오버라이딩 (Overriding) 오버라이딩은 같은 이름의 메서드를 다른 동작을 하도록 정의한다는 점에서 오버로딩과 비슷한 개념이라고 할 수 있다. 오버로딩과 차이점은 상속관계에 있는 Class에서만 사용되며 요구하는 parameter가 동일해야 한다. class Number { public int i, j; public void calculate() { System.out.println("i : " + i + "j : " + j); }}class Plus extends Number { public void calculate() { System.out.println(i+j); }}class Mul extends Number { public void..
[Java] 상속 (Inheritance), extends 상속 (Inheritance) 상속은 Class 간의 계층적 관계를 구성하는 문법이다. 상속받은 Class는 상속된 Class의 특성을 그대로 사용하는 것이 가능하다. 이때 상속되는 Class를 SuperClass(부모 클래스), 상속받는 Class를 SubClass(자식 클래스)라고 한다. 한 클래스는 하나의 SuperClass만을 상속받을 수 있으며 클래스가 그 자체를 상속받는 것은 불가능하다.    extends extends 키워드를 사용하여 상속을 명시할 수 있다. 예시 코드를 하나 작성해보겠다. class Number { public int i, j; public void PrintNum() { System.out.println(i); System.out.p..
[Java] 배열, Boundary Checking (경계 검사), 비대칭 배열 배열 배열의 개념에 대해서는 이미 포스팅한 적이 있기 때문에 간단히 사용법만 설명하겠다. Java에서 배열을 선언하는 방법은 아래코드와 같다.int[] arr = new int[10]; 아래 코드처럼 배열의 크기를 명시하지 않고 사용하는 것도 가능하다.int[] arr = {1, 2, 3, 4, 5}; 위 코드처럼 선언한다면 배열의 크기는 자동으로 5가 할당된다.    Boundary Checking Java는 배열의 범위를 자동으로 검사하고 배열의 범위에 벗어나는 접근을 시도할 때ArrayIndexOutOfBoundsException 예외를 발생시킨다.     다차원 배열의 동적 생성 아래 코드와 같은 방식으로 다차원 배열을 생성할 수 있다.int[][] arr = new int[4][5]; 다차원 배..
[Java] String, 문자열 비교, String Class 메서드 String java에는 String Class가 정의되어있기때문에 String 자료형을 사용할 수 있다. 또한 리터럴 문자열은 JVM에서 String 객체로 전환되기 때문에 아래와 같은 초기화가 가능하다.String Str = "Hello"; 또한 당연히 생성자도 정의되어 있기 때문에 아래와 같은 초기화도 가능하다.String Str = new String("Hello");     문자열 비교 메서드 String Class에서 문자열 비교 메서드를 제공하고 있다.   int compareTo(String s)  문자열을 사전 순으로 비교해 정수 값을 반환  int compareToIgnoreCase(String s)  대소문자를 무시하고 문자열을 사전 순으로 비교  boolean equals(Strin..
[Java] static method (정적 메서드), instance method (인스턴스 메서드) static method (정적 메서드) 정적 메서드는 Class 레벨에서 정의되며 특정 인스턴스에 속하지 않는다. 즉 인스턴스를 생성하지 않고도 호출할 수 있는 메서드이다. 따라서 정적 메서드는 클래스 레벨에서 동작하지만 인스턴스 변수에 접근할 수 없고 정적 변수에만 접근이 가능하다. 인스턴스를 통해 호출하는 것도 문법에 위배되지는 않지만 권장하는 방법이 아니다. 정적 메서드는 아래 코드와 같이 사용할 수 있다. class Example { static int add(int a, int b) { return a + b; } static int multiply(int a, int b) { return a * b; } public static void m..
[Java] 객체 생성 (class) 객체 (Object) 클래스 변수를 객체 혹은 오브젝트라고 부른다. 클래스 변수를 선언할 때에는 new 키워드를 사용하여 동적으로 생성해 준다. class Box { double width; double height; double depth;}class BoxDemo { public static void main(String[] args) { Box mybox = new Box(); }}     인스턴스 변수 접근 객체가 실제로 사용될 때 이를 인스턴스(instance)라고 한다. 인스턴스 변수에 접근할 때에는 C++과 마찬가지로 dot 연산자를 사용한다. class Box { double width; double height; double depth;}class BoxDemo { ..

728x90
반응형