JAVA

연산자, 타입, 배열

CodePoetry 2014. 10. 14. 10:06
  • int보다 작은 타입끼리 연산한 결과의 변수 타입은 int가 된다.
  • byte, short/char, int, long, float, double
  • int + double → double + double → double

  • SW 설계 시 모듈화 유의사항 : high cohesion(응집도), loose coupling
  • 만약 생성자가 하나라도 있다면, 기본 생성자는 자동 추가되지 않는다.
  • 문자열을 자주 조작하는 경우 String 객체가 많이 생기기 때문에 효율적이지 않음
    → StringBuilder나 StringBuffer 사용
  • 문자열 비교는 String reference 변수가 null이 아닌 경우에 equals 메소드를 호출해야하기 때문에 반드시 null check!
    if (str1 != null && str1.equals(str2)) { ... }
  • str1 == str2 // 주소비교
  • str1.equals(str2) // 문자열 비 교 

  • Wrapper class : primitive date type을 객체화 해주는 클래스
    Boolean, Byte, Character, Short, Integer, Long, Float, Double
  • 문자열 → primitive type
    int num = Integer.parseInt("123");

  • Reference 변수는 객체를 생성하기 전(new)까지는 객체를 가리키는 주소값을 가진 것에 불과하다.
  • 접근제어자
    public : 어느 곳에서나 OK
    protected : 같은 패키지 클래스끼리는 OK, 다른 패키지라면 상속받은 경우만
    default : 같은 패키지 클래스끼리는 OK. 다른 패키지는 No.
    private : 같은 패키지는 고사하고 내 클래스 안에서만 OK.
  • final : 절대 변하지 않는 컴파일 시점의 상수. 사용되기 전에 반드시 초기화 필요
  • static method 안에서는 자신의 클래스 것이라 할지라도 인스턴스(일반변수)나 인스턴스 메소드에 직접 접근할 수 없지만 자신이 속한 클래스 객체를 생성하 후에는 사용 가능하다.

  • this : 클래스 자신의 객체 레퍼런스를 가리킨다.
  • 배열의 선언
    int[] numbers;
    int numbers[];
  • 배열의 생성
    numbers = new int[5];
    books = new Book[5]; // 주의 : reference data type 배열은 아직 각 index에 연결된 객체가 없다. 단지 객체 주소를 저장할 방만 생성한 것.
  • 배열 요소들이 값 할당
    numbers[3] = 10;
    books[1] = new Book("해리포터");
  • 2차원 배열
    선언 : int[][] numbers; int[] numbers[]; int numbers[][];
    생성 : int[][] numbers = new int[3][2]; 혹은 [3][]; // 첫 index 배열의 size는 반드시 정해줘야 한다.