본문 바로가기

프로그래밍

(67)
class 캐스팅 ◇ Lvalue의 상위 클래스(father)이고, Rvalue가 하위 클래스(son:father을 상속받은)로 메모리를 생성할 때 별도의 타입캐스팅이 없이 가능. father fa = new son(); ◇ 이 때 fa의 참조변수로 메소드의 호출 시에는 son 클래스의 메소드가 호출 됨. 단, son 클래싀 모든 메소드에 접근 가능한 것은 아니며, father 클래스가 가지고 있는 명세에 있는 메소드만 호출 가능이 가능하다. ◇ 반대로 Lvalue 가 하위 클래스(son)이고, Rvalue가 상위 클래스(father)로 메모리를 생성 할 때는 타입 캐스팅 을 하지 않으면, 에러. 그러나, 타입캐스팅을 해서 생성한다고 해도 실제 사용 시에 런타임 에러 발생. 즉, 실제적으로 사용 불가함. 1. son s ..
자바 Day 1-2 ◈ JVM : software 적으로 platform(h/w, o/s) 구현 java interpreter :class (byte code)를 번역해서 o/s에게 넘겨준다 JVM - 메모리 할당 등, Java 프로그램 입장에서는 java o/s 역할을 함. O/S Platform ◈ /** */ 자바 DOC 생성을 위한 주석 ◈ final 변수는 선언 시 반드시 할당을 할 필요는 없지만, 사용하기 전에는 할당해야 한다. - final 멤버변수가 static일 때, 생성자에서 초기화하는 것은 에러. static에서도 초기화 불가(에러) : 생성 시 초기화. final 변수가 메소드 변수일 경우에는 해당 메소드 내에서 사용 전 초기화 가능 - final 멤버변수가 static이 아닐 때, set메서드와 같은..
추상클래스와 인터페이스 abstract VS interface 공 통 점 1. 추상클래스와 인터페이스는 객체 생성을 할 수 없다. 2. 멤버 함수의 선언부(원형:prototype)만 있고, 정의부(구현:Body)가 없는 메소드를 가진다. 3. 추상클래스와 인터페이스 모두 직접 사용하는 것이 아니라, 해당 추상 클래스와 인터페이스를 상속받아 서 구현을 해서 사용한다.4. 추상클래스와 인터페이스를 상속하여 만든 클래스의 객체의 참조변수로서 다형성을 구현할 수 있다. * 상위클래스의 참조변수로 하위클래스 객체 생성시 하위클래스에서 구현된 메소드 접근이 된다. 즉, 자바에서는 참조변수의 type이 중요한 것이 아니라, 실제 메모리에 생성된 type이 중요하다. 5. 추상클래스와 인터페이스 내의 추상메소드를 상속받아 구현한 곳에서 th..
인터페이스 ◈ 패키지 ◈ (1) 설명 비슷한 종류의 기능을 가진 클래스들의 묶음 (2) 생김새 자바 파일의 최상단에 package라는 keyword사용 (3) 컴파일방법 #>javac -d . E.java : javac -d 경로 파일명 #>javac -d AAA E.java //상대 경로 #>javac -d C:\SOO\BEGIN\DAY3\BBB E.java //절대 경로 (4) 실행법 #>javac soo.begin.day3.E (5) 압축법 : 재활용을 하기 위해 #>jar -cvf test.jar soo : jar -cvf 저장이름(새이름) 패키지최상단폴더(압축할 자료) : -c 새 아카이브를 만듭니다. : -v 표준 출력에 대한 자세한 정보 출력을 생성합니다. : -f 아카이브 파일 이름을 지정합니다. (..
객체 생성 호출. public void Show() { System.out.println("출력되죠?"); } public static void main(String args[]) { Test tmp = new Test(); tmp.Show(); // 객체를 생성해서 호출 가능. new Test().Show(); // 객체를 따로 담아주지 않아도 생성순간 호출가능. // 이것의 경우는 한 번 수행 후, 레퍼런스 종료. }
자 바 중 요 개 념 자 바 중 요 개 념 ━━━━━━━━━━━━━━━━━ 1. 레퍼런스 데이터형 1.1. 클래스나 인터페이스의 메모리 주소를 저장하는 데이터형 2. 캐스팅(명시적 변환) 2.1. 큰 데이터형을 작은 데이터형에 넣을경우 3. import문 3.1. 외부의 클래스를 사용하려면 클래스를 로드해야 한다 3.2. 소스코드의 제일 앞에 기록 4. Wrapper 클래스 4.1. 문자열을 기본 데이터형으로 변환하기 위한 클래스 5. for문 5.1. 변수의 초기값과 증감치는 생략될수 있다 ※ 증감치가 없을경우 내부에서 변수값을 변경 6. 배열 6.1. 동일한 데이터형의 연속된 기억공간 7. String클래스 7.1. 생성된 String객체는 상수성격을 가진다 7.1.1. 생성된 String객체 조작시 객체가 변하는게 아니..
Java에서 if, while, for 문의 조건문 / switch if, while, for 문에서의 조건문은 C/C++ 에서 0을 false로, 1(대표값-0이 아닌 모든 수)을 true로 대체해서 사용할 수 있었지만, 자바에서는 조건 안에 단순히, 0이나 1을 넣으면 컴파일 에러가 뜨게 된다. 자바의 조건에서는 true 나 false의 값이 있는 boolean 형으로 사용해야 한다. switch의 조건문에서는 int가 대표값으로 들어가며, short나, byte, char 값 만을 사용할 수 있다.
중첩된 반복문 빠져나가기 / 순환하기 중첩된 반복문을 한 번의 break 문으로 빠져 나가는 방법 => 중첩된 외부 for문 앞에, Label을 지정해준다. ex) loop: // label for(int i=0; i