반응형

자바의정석 113

[자바의정석 - 기초편 ] ch7-17~20 제어자, static, final, abstract

ch7-17 제어자(modifier) - 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여 접근제어자 / 그 외 접근제어자 : public, protected, (default), private - 1개만 사용 가능 그 외 : static, final, abstract - 하나의 대상에 여러 제어자를 같이 사용 가능 (접근 제언자는 하나만) 일반적으로 접근제어자를 제일 왼쪽에 작성한다. ch7-18 static - 클래스의, 공통적인 클래스 초기화 블럭 : static 메서드에서는 인스턴스 멤버(iv, instance method) 사용 불가 : iv들은 객체를 만들고 나서 사용할 수 있기 때문에 static은 객체 생성 없이 사용가능하다. ch7-19 final - 마지막의, 변경될 수..

자바의정석 2022.03.19

[자바의 정석 - 기초편] ch7-15, 16 import문, static import문

ch7-15 import 문 - 클래스를 사용할 때 패키지 이름을 생략할 수 있다. - 컴파일러에게 클래스가 속한 패키지를 알려준다. 이클립스 단축키 ctrl + shift + o 를 이용해서 자동 import 가능하다. - java.lang 패키지의 클래스는 import 하지 않고도 사용할 수 있다. String, Object, System, Thread ... > 매번쓰기 번거롭기 때문에 java.lang 패키지는 자동으로 import 되어있다. .* 은 모든 클래스를 의미한다. ch7-15 import문의 선언 - import문을 선언하는 방법은 다음과 같다. import 패키지명.클래스명; 또는 import 패키지명.*; 패키지 문과 클래스 선언 사이에 import문을 선언한다. ch7-15 im..

자바의정석 2022.03.19

[자바의 정석 - 기초편] ch7-12~14 패키지, 클래스 패스

ch7-12 패키지(package) - 서로 관련된 클래스의 묶음 java8 기준으로 약 4000개의 클래스가 있다. 많은 클래스들을 묶지 않고 관리하기 힘들어서 패키지로 묶음을 만들었다. - 클래스는 클래스 파일(*.class), 패키지는 폴더. 하위 패키지는 하위 폴더 - 클래스의 실제(full name)은 패키지를 포함(java.lang.String) rt.jar(run time)는 클래스들을 압축한 파일(jdk 설치경로 \ jre \ lib 에 위치) JAVA9부터는 rt.jar 파일은 없어졌다. module개념이 등장하기 때문에 너무 큰 rt 파일을 없애고 module 등장 jar 압축파일이고, 이것을 압축해제하면 클래스가 있다. eclipse에서도 jar 파일을 확인할 수 있다. ch7-13 ..

자바의정석 2022.03.19

[자바의 정석 - 기초편] ch7-10,11 참조변수 super, 생성자 super()

*생성자의 첫 줄에는 반드시 생성자를 호출해야 한다. ch7-10 참조변수 super this 와 거의 같다고 보면 된다. 이름이 겹칠 때는 상속이 그대로 되는데 구별하기 위해서 super.x (조상) / this.x (자손) 으로 구별한다. ch7-11 super() - 조상의 생성자 - 조상의 생성자를 호출할 때 사용 - 조상의 멤버는 조상의 생성자를 호출해서 초기화 자손의 생성자는 자기가 생성한 것만 초기화 해야 한다. super는 조상의 생성자인데 자손클래스에서 조상클래스를 호출할 때는 super를 쓴다. 추가 조건 *생성자의 첫 줄에는 반드시 생성자를 호출해야 한다. 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super(); 를 삽입 * 중요한 예제 반복해서 볼 것

자바의정석 2022.03.19

[자바의 정석 - 기초편] ch7-7~9 오버라이딩

ch7-7 오버라이딩(overriding) - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 매개변수와 같은 선언부는 변경 불가, 내용만 구현부만 변경 가능하다. package ch07; class Point { int x; int y; String getLocation() { return "x:" + x + "y; " + y; } } class Point3D extends Point { int z; String getLocation() { return "x:" + x + " y: " + y +" z: "+ z; } } public class OverrideTest { public static void main(String[] args) { Point3D p = new Point3D(); p.x = ..

자바의정석 2022.03.18

[자바의 정석 - 기초편] ch7-5,6 단일상속, Object클래스

ch7-5 단일 상속(Single Inheritance) 자바가 c++ 보다 나중에 나왔고, c++은 다중 상속을 허용하지만, java는 단일 상속만을 허용한다. 다중 상속으로 인한 장점보다 단점이 더 크다고 판단해서, 단일 상속을 지원 - 충돌 문제 하지만 나중에 충돌문제를 해결하면서 다중상속과 같은 기능을 가질 수 있는 인터페이스 기능이 등장한다. - 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함관계로 한다. ch7-6 Object클래스 - 모든 클래스의 조상 - 부모가 없는 클래스는 자동으로 Object 클래스를 상속받게 된다. - 모든 클래스는 Object클래스에 정의된 11개의 메서드를 상속받는다. toString(), equals(Object obj), hashCode(), 모든 클래스..

자바의정석 2022.03.18

[자바의 정석 - 기초편] ch7-3,4 클래스 간의 관계, 상속과 포함

ch7-3 포함 (compositie) 관계 클래스는 1) 상속 관계와 2) 포함 관계가 있을 수 있다. c.c.x c.c.y 코드를 보고 그림을 그릴 줄 알아야 한다. 포함이란? - 클래스의 멤버로 참조변수를 선언하는 것 - 작은 단위의 클래스를 만들고, 이 들을 조합해서 클래스를 만든다. ch7-4 클래스 간의 관계 결정하기 언제 상속하고 언제 포함하는지는 어떻게 결정할까? 상속관계 '~은 ~이다. is-a 포함관계 ~은 ~을 가지고 있다. has-a 상속은 여러가지 제약이 많기 때문에, 꼭 필요한 경우만 하고 일반적으로 포함을 사용하는 경우가 대부부 90% 이다. 실습 - 상속 관계인 경우 package ch07; class MyPoint { int x; int y; } class Circle ex..

자바의정석 2022.03.18

[자바의 정석 - 기초편] ch7-1,2 상속

ch7-1 상속(Inheritance) 기존의 클래스로 새로운 클래스를 작성하는 것 (코드의 재사용) 두 클래스를 부모와 자식으로 관계를 맺어주는 것 - 자손은 조상의 모든 멤버를 상속받는다 ( 생성자, 초기화 블럭 제외 ) 조상 : 부모의 부모도 포함 - 자손의 멤버 개수는 조상보다 적을 수 없다 ( 같거나 많다 ) - 자손의 변경은 조상에 영향을 미치지 않는다. 상속을 할 수록 자식 클래스가 더 커진다. - 예제 2차원 좌표의 한점 (int x, int y) 관계가 없는 클래스를 만들거나 상속 관계에 있는 클래스를 만들 수 있다. 상속을 받던 안 받던, 결과는 똑같다. - 예제 7-1 stv 에 해당하는 클래스에 channel 없는 것 같아도, 조상의 멤버에 channel이 있기 때문에 해당 코드가 ..

자바의정석 2022.03.17

자바의 정석 ch06 연습문제(1) [6-13~6-24]

지역변수는 자동 초기화 되지 않기 때문에 사용하기 전에 반드시 적절한 값으로 초기화를 해주어야 한다. 지역변수는 자신이 선언된 블럭이나 메서드가 종료되면 소멸되므로 메모리 부담이 적다. 힙 영역에는 인스턴스 인스턴스변수 가 생성되는 영역이며, 지역변수는 호출스택 에 생성된다 (call stack) . package ch06; public class Exercise6_20 { static int[] shuffle(int[] arr) { for(int i = 0; i < arr.length; i++) { int j = (int)(Math.random()*arr.length); int tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } return arr; } public st..

자바의정석 2022.03.15
반응형