본문 바로가기

Student 객체의 이해(과제) package kh.java.run; import kh.java.controller.StuMgr; import kh.java.model.vo.Student; public class Run { public static void main(String[] args) { StuMgr s = new StuMgr(); //s.main(); // StuMgr s = new StuMgr(); // StuMgr m = new StuMgr(); s.insertStudent(new Student("홍길동",20,"경기도")); //insertStudent값에다가 새로운값 홍길동, 20, 경기도 값을 넣는다. s.insertStudent(new Student("김말똥",30,"충청도")); s.insertStudent(new.. 더보기
메소드 재정의(상속에서 super과 this) 부모 클래스의 모든 메소드가 자식 클래스에 맞게 설계되어 있다면 가장 이상적인 상속이지만, 어떤 메소드는 자식 클래스가 사용하기에 적합하지 않을 수 있다. 이 경우 상속된 일부 메소드는 자식 클래스에서 다시 수정해서 사용해야 한다. 자바는 이런 경우를 위해 메소드 오버라이딩 기능을 제공한다. 메소드 재정의(@Override)메소드 오버라딩은 상속된 메소드의 내용이 자식 클래스에 맞지 않을 경우, 자식 클래스에서 동일한 메소드를 재정의하는 것을 말한다.이럴경우 메소드가 오버라이딩 되면 부모객체의 메소드는 숨겨지기때문에, 자식객체에서 메소드를 호출하면 무조건 자식메소드가 호출된다. 메소드 오버라이딩 할때의 규칙1. 부모의 메소드와 동일한 시그니처(리턴 타입, 메소드 이름, 매개변수 리스트)를 가져야 한다.2.. 더보기
자바 상속에 대하여4 현실에서 부모없는 자식이 있을수 없듯이 자바에서도 자식 객체를 생성하면, 부모 객체가 먼저 생상되고, 자식 객체가 그 다음에 생성된다.아래 코드는 DmbCellPhone 객체만 생성하는 것처럼 보이지만 사실은 내부적으로 부모인 CellPhone 객체가 먼저 생성되고, DmbCellPhone 객체가 생성된다. 메모리구조를 보자면스택영역에는 dmbcellphone가 값형식으로 생성이되면 그 주소값이 가리키는건 dmbcellphone 객체를 가리키며 이 dmbcellphone는 cellphone라는걸 상속받은 형태로 heap영역에 저장이 된다. ======================================================================================package.. 더보기