My footsteps
- 참조변수의 형변환 : 사용할수있는 멤버의 갯수를 조절하는것(주소값,객체 변화 無) , 조상 자손관계의 참조변수는 형변환 가능하다 1. Car car = null; 2. FireEngine fe = new FireEngine(); // 객체 생성하며 주소 자동 복사 3. FireEngine fe2 = null; 4. fe.water( ); 5. car = fe; (주석처리 되어있는 car.water는 에러. 왜냐하면 car의 calss값이 총 4개인데 fe의 class값은 총 5개이다. car가 쓸수있는 멤버가 4개뿐이 안되서 성립불가능) (+ 그리고 위의 식은 사실 형변환이 생략된 상태이다. 원래대로면 car = (Car)fe; 가 맞는데 생략할수 있는 이유는 정의된 클래스값 사진을 보면 class ..
- 부모가 없는 클래스는 자동으로 Object가 부모가 됨 - 오버라이딩 : 상속받은 조상의 매서드를 자신에 맞게 변경하는것, 선언부 변경 불가하고 내용만 변경 가능 1. 선언부가 조상 클래스의 매서드와 일치해야함 2. 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할수 없다 3. 예외는 조상 클래스의 매서드보다 많이 선언할수 없다 - 참조변수 super (iv와 lv를 구분하려고 쓰는 this와 거의 비슷) : 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자) 내에서만 존재할수있고 조상의 멤버와 자신의 멤버를 구별할때 사용할수있다 - 조상의 기본생성자는 반드시 첫줄에 호출해야함 그렇지 않으면 컴파일러가 자동으로 생성자 첫줄에 super() 삽입 (* 모든 생성자는 첫줄에 다른 생성자를 ..
- 기본형 매개변수 : 변수의 값을 읽기만 할수 있다 / 참조형 매개변수 : 변수의 값을 읽고 변경가능 - 참조형 매개변수를 사용하면 객체를 다룰수 있는 리모컨을 쥐어주는것과 똑같다. 매서드에게 참조형 매개변수를 통해 객체의 주소를 전달해주면 다른 매서드에서 객체를 읽을수도, 쓸수도 있다. 1. public static void main(String[] args) 2~3. Data2 d = new Data2(); 4. d.x =10; 5~6. System.out.println("main() : x =" + d.x); 7. change(d); 8~9. static void change(Data2 d) { d.x = 1000; 10~12. Ststem.out.println("change() : x =" + ..
- 객체식 클래스명 변수명; 변수명 = new 클래스명( ); Tv t; // 참조변수 t를 선언한다. Tv를 작동하기 위해선 리모컨이 필요하니까 t가 리모컨인셈 t = new Tv ( ); // Tv라는 객체와 참조변수 t인 리모컨을 연결(=)해준다 이 식을 한줄로 쓰면 Tv t = new Tv( ); - 클래스 작성(설계도) > 객체생성(제품) > 객체사용 - 객체의 사용 t. channel= 7 ; // 티비인스턴스의 멤버변수 채널1의 값을 7로 한다 t. channelDown(); // 티비인스턴스의 매서드 채널다운을 호출한다 Sop("현재 채널은" + t.channel + "입니다."); Tv t; t = new Tv(); // new에 객체 주소가 담김 Tv t; t = new Tv(); //..
- Srting배열 : 3개의 문자열을 담을 수 있는 배열을 생성함 (기본값 null) String [ ] 배열이름 : { 문자열 } - 커맨드 라인 : 커맨드 라인에 입력한 값이 문자열 배열에 담겨서 전달 (빈 문자열도 배열 생성 가능) - 커맨드 라인을 쓰는 이유? 1. 배열크기를 미리 지정하지 않아도 된다. 커맨드라인에 입력된 값의 개수대로 배열크기를 지정할 수 있다. 2. 이클립스를 켜지 않고도 cmd 창에서 배열 입력이 가능하다. - 2차원 배열 : 테이블 형태, (엑셀처럼)의 데이터를 저장하기 위한 배열 int [ ] [ ] score = new int [4] [3] ; // 4행(세로)3열(가로)의 2차원 배열을 생성한다. 12개의 저장공간 마련 - 2차원 배열은 열,행 총 2개에 index..