목록자바중요 (6)
가자미의 개발이야기
a. Arrays 클래스 java.util.Arrays 에 정의되어 있는 클래스. 모든 메소드는 static(정적) 메소드이므로, Aarays 클래스로 바로 사용이 가능 b. 배열 복사 메소드 메소드 매개변수 반환 값 비고 int[] copyOf(int[] arr, int len) 원본 배열, 길이 원본의 특정 길이까지 복사된 배열 int말고도 다양한 배열 가능, 원본보다 더 길게 복사하면 기본값(0)으로 초기화 int[] copyOfRange(int[] arr, int start, int end) 원본 배열, 시작, 끝 원본의 시작~끝-1까지 복사 끝-1에 유의 int 말고도 다양한 배열 가능 void arraycopy(int[] arr, int index1, int[] arr2, int index2,..
a. public 인터페이스 안에 선언되는 추상 메소드는 기본적으로 public이다. 왜냐면 외부 클래스들이 접근해야 하기 때문이다. interface Printable { public void print(String doc); } b. 상수 선언 가능 인터페이스는 인스턴스를 생성할 수 없기 때문에 인스턴스 변수를 선언할 수 없다. 하지만 상수는 선언 가능하다. 이때 public static final 선언은 기본으로 된다. interface Printable { public static final int PAPER_WIDTH=70; } c. 추상 메소드 구현 인터페이스에 선언된 추상 메소드는 구현한 모든 클래스 내에서 구현 해줘야 한다. 이를 해결하려면 인터페이스를 상속시켜 새로운 추상 메소드를 추가한..
a. 스태틱의 상속 부모 클래스에 static 변수 혹은 메소드가 있다면 상속받은 클래스에도 상속 될까? 답은 아니오이다. 다만! 부모 클래스가 static에 직접 접근 가능한 권한은 상속된다. b. 상속 주의사항 누군가가 핸드폰을 샀다고 가정하자. 그 사람은 기계치라 전화 문자만 사용할 수 있다. 이 사람은 스마트폰을 가져도 기본적인 핸드폰 기능만 사용할 수 있다. 자식 클래스의 기능을 사용하고 싶으면 자식 클래스로 접근해야 가능하다. 부모 클래스로 접근하면 부모 클래스의 기능만 사용할 수 있다. (같은 주소를 참조하지만, 활용하는 영역의 차이) 참조를 부모 클래스로 하느냐 자식 클래스로 하느냐에 따라 기능의 한계가 발생할 수 있다. class HandPhone{} class SmartPhone ext..
a. 배열 int[] ref=new int[5]; int[] ref={1,2,3,4,5}; int[] ref=new int[]{1,2,3,4,5}; int ref; ref=new int[5]; int ref; ref=new int[]{1,2,3,4,5}; 이를 통해 자바에서 배열도 인스턴스로 생성됨을 알 수 있다. 클래스도 배열을 만들 수 있다! 배열은 다른 메소드의 매개변수로 참조가 가능하고 메소드의 반환값으로 배열이 참조를 받을 수 있다. 자바 배열의 초기화 메소드 Arrays클래스의 static메소드인 fill(int[] a, int val) 두번째 인자로 전달된 값으로 배열 초기화 Arrays클래스의 static메소드인 fill(int[] a, int 어디부터, int 여기까지, int val) ..
a. String 클래스의 특징 자바에서는 String str1="java"; 도 유심히 살펴볼 이유가 있다. str1이라는 String 인스턴스가 생성되어 "java"라는 데이터를 인스턴스로 전달해준 셈이다. 즉 String str1=new String("java"); 이런 의미인 셈이다. 이때 하나 기억해야 할 것이 자바 String 인스턴스는 immutable 인스턴스 라는 사실이다. (immutable은 값이 변경할 수 없는 상태를 말한다.) 따라서 String 인스턴스 생성을 최소한으로 한다.(오류가 일어날 확률이 없기 때문) String 클래스는 다른 기본 자료형과 +연산이 가능하다. 다른 기본자료형을 String 클래스로 바꾸고 서로 이어붙여서 반환한다. 다르게 생각하면 어떤 자료형을 Str..
a. 클래스 변수(스태틱 변수) 모든 클래스에서 공유하기 위해 클래스에 속하지 않는 독립적인 변수라고 생각하면 편한다. 하지마 자바로 코딩할 때 그런 독립적인 변수도 클래스 안에 써줘야 하니, 이를 구분하기 위해 앞에 static이라고 붙이는 것이다. 즉 static 변수는 자신이 몸담고 있는 클래스와 관련 없는 독립적인 존재이다. 하지만 한가지 지켜줘야 하는 것이 있는데, 자신이 몸담고 있는 클래스가 지정한 접근 수준의 접근을 허용한다는 점이다. 즉 인스턴스의 이름으로 외부에서 접근 가능한 경우도 생기게 된다. 따라서 static변수에 접근할 때는 인스턴스의 이름으로 접근하기보다 클래스의 이름으로 접근해주는게 좋다.(인스턴스와 구분하기 위해) b. 스태틱 메소드 전체적인 특징은 앞서 설명한 클래스 변수..