본문 바로가기

Java

(19)
ch22.제네릭(2) - 2 보호되어 있는 글입니다.
ch22. 제네릭(2) -1 보호되어 있는 글입니다.
JAVA Programming(Ch 15. 메소드 오버라이딩) 15. 메소드 오버라이딩 15-1. 상속을 위한 두 클래스의 관계 -> 언제 두 클래스의 상속 관계로 맺어야 할까 ? : ‘IS-A’ 관계가 성립해야함. A is a B -> A는 일종의 B이다. ( ex. 사과 is a 과일 ) * ‘ 이런 관계가 있을 때만 상속을 고려해라 ! ‘ @ ‘IS-A관계 ’ -> Life is a journey. / 노트북은 컴퓨터이다. / 전기자동차는 자동차이다. @ ‘IS-A관계’를 갖지 않는 두 클래스가 상속으로 연결되어 있다면, 적절한 상속인지 의심해야 한다! (잘못된 상속이라고 생각 해야 함) class MobilePhone { protected String number; // 전화번호 public MobilePhone(Stri..
JAVA Programming(Ch 14. 상속) 14-1 상속의 기본 문법 이해 ( sw공학에서 자주 언급되는 내용. 아직 sw분야는 재활용이 어려움. 코드 레벨에서 얘기함) --> 연괸된 일련의 클래스들에 대해 공통적인 규약을 정의할 수 있다. Ex) A / B / C ( class ) -> 클래스들이 서로 다르면 어떤 규약 & 규칙을 적용하는데 어려움이 있음. 각 class마다 적용될 규칙 & 규약이 다르다. 여기 상속을 적용하면 공통적인 규약 & 규칙을 적용할 수 있다. l 상속의 가장 기본적인 특성 - 상속 (Code level) : 기존에 정의된 클래스에 메소드와 변수를 추가 à 새로운 클래스 정의 - class Man { String name; // 인스턴스 변수 public void tellYourName() { // 인스턴스 메소드 Sy..
JAVA Programming(Ch 13. 배열) => 하나의 묶음으로 보기 . 따로따로 존재하는게 아니라 , 나란히 할당 되는 것 ! 이후 , 이 배열의 참조값 주솟값 이 반환되어서 ref 라는 참조변수가 이를 참조하게 된다 . public class ArrayIsInstance { public static void main(String args[]) { // 길이가 5인 int형 1차원 배열의 생성 int[] ar1 = new int[5]; // 길이가 7인 double형 1차원 배열의 생성 double[] ar2 = new double[7]; // 배열의 참조변수와 인스턴스 생성 분리 float[] ar3; ar3 = new float[9]; // 배열의 인스턴스 변수 접근 System.out.println("배..
JAVA Programming(Ch 12.콘솔 출력) 12 - 1 콘솔 출력 * 콘솔 : 컴퓨터를 대상으로 데이터를 입력 및 출력하는 장치 총칭 ( 키보드, 모니터 등 ) * System.out.println -> ' 자바의 대표적인 콘솔 출력 메소드 ' class Box { private String conts; Box(String cont) { this.conts = cont; } public String toString() { return conts; // 문자열 반환. String 인스턴스의 참조값을 여기서 반환 } } public class AutoCallToString { public static void main(String args[]){ StringBuilder stb = new StringBuilder..
JAVA Programming(Ch 11. 메소드 오버로딩) 11-1 메소드 오버로딩 * 한 클래스 내에 동일한 이름의 메소드를 둘 이상 정의하는 것 허용 x But 매개변수의 선언이 다르면 가능하다! -> '메소드 오버로딩' * 메소드 호출 시 두 가지 정보를 참조하여 찾음 ① 메소드의 이름 -> '이름을 통해서 구분 가능' ② 메소드의 매개변수 정보 -> ' 이름이 같아도 매개변수의 정보가 다르면, 호출할 때 서로 다른 메소드로 인지. 따라서 이 둘 중 하나의 형태가 다른 메소드를 정의하는 것이 가능. EX) a.m(10); a라는 참조변수가 참조하는 인스턴스의 m이라는 메소드를 호출 -> 10이라는 숫자를 인자로 전달 그럼 JVM은 m이라는 메소드를 호출하게 될 것. 근데, 이름만 똑같다고 그 메소드를 호출할 수 있는 것 X -> m이라는 이름의 메소드 중에..
JAVA Programming(Ch 10. 클래스 변수) Ch 10. 클래스 변수와 클래스 메소드 (클래스 변수 = Static 변수) * 변수 위치는? ex) int num -> 제일 쓸모가 많은 class로 들어가야함! But) 막 넣는다고 누구나 접근할 수 있는 변수가 되는 것은 X . 그냥 넣으면 인스턴스 변수가 된다! -> 다른 class에서 접근 X => 넣어주되 static이라는 선언을 붙여주면 '이 변수는 공유하겠다' 라는 말. 메모리 공간에 올려서 프로그램 전체 공유. 인스턴스 생성과는 전혀 별개로 하나만 존재하고 어디서든 접근 가능한 변수의 성격을 지니게 된다 ! * 인스턴스 변수 -> 인스턴스가 생성되었을 때, 생성된 인스턴스 안에 존재하는 변수 * 클래스 변수 -> 인스턴스의 생성과 상관없이 존재하는 변수이다. 위치는 클래스 변수 안에 존..