본문 바로가기

JAVA

[JAVA] JAVA 데이터 크기/범위/overriding/overloading

JAVA 데이터 크기

 

컴퓨터에 저장되는 정보의 최소 단위는 1bit이다.

컴퓨터는 0과 1로만 계산을 한다.

8bit 1byte
1024byte 1kilobyte
1024kilobyte 1megabyte
1024megabyte 1gigabyte
1024gigabyte 1terabyte
1024terabyte 1petabyte

 

 

JAVA 데이터 범위

byte (1byte) -128 ~ 127
short (2byte) -32,768 ~ 32, 767
int (4byte) -2,147,483,648 ~ 2,147,483,647
long (8byte) -9223372036854775808 ~ 9223372036854775807

 

 

 

상속

상속이란 물려주다는 의미를 뜻하며 java에서 상속(extend)를 하게 되면

A객체가 B객체를 상속했을 때 A객체는 B객체의 변수와 메소드를 그대로 물려받으면서 새로운 메소드나 변수를 만들어 사용할 수 있다.

즉, 부모의 메소드도 사용하고 자신이 만든 메소드도 사용을 한다. 

중복된 이름의 메소드를 사용할 경우는 자기 자신의 메소드를 호출하게 되는데 이는 overriding 이라고 한다.

대체로 A --> B 로 표시하며 A는 B를 상속한다고 한다.

public class A extends B {
  private String name;
  
  public void setName(String name) {
    this.name = name;
  }
  
  public void print() {
    System.out.println("A name : "  + name);
  }
}

public class B {
  private String name;
  private int age;
  
  // setter, getter
  
  public void print() {
    System.out.println("B name " + name + ", B age " + age);
  }
}

public class main {
  public static void main(String[] args) {
    A a = new A();
    a.setName("a");
    a.setAge(30);
    System.out.println(a.getAge());
    a.print();
  }
}

위 코드의 결과값은 

30

A name : a 

라는 결과가 호출된다.

 

 

 

overriding(재정의)

overriding 은 재정의라고 하여 부모클래스의 메소드를 그대로 사용하지 않고 부모클래스의 메소드를 재정의 해서 재사용 한다.

재정의 할 때 주의점으로는 부모 메소드의 리턴 형식과 자식 메소드의 리턴 형식과 이름은 같아야 한다.

매개변수 데이터 타입, 숫자와 리턴 타입 이름이 같아야 한다.

부모클래스 B에서 정의한 print() 메소드를 자식클래스인 A에서 print를 재정의해서 사용하고 있다.

public class A extends B {
  private String name;
  
  public void print() {
    System.out.println("A name : "  + name);
  }
}

public class B {
  private String name;
  private int age;
  
  public void print() {
    System.out.println("B name " + name + ", B age " + age);
  }
}

 

 

 

overloading

overloading은 같은 메소드 명으로 다른 매개변수의 갯수, 다른 매개변수 타입을 다르게 하는 것이다.

public class A{
  private String name;
  private int age;
  private String phone;
  
  public void print(String name, int age) {
    System.out.println(name + ", " + age);
  }
  
  public void print(String name, int age, String phone) {
    System.out.println(name + ", " + age + ", " + phone);
  }
}