포함 관계를 이해하기위해 우선 Car라는 클래스와 engine이라는 클래스의 연관점을 살펴보자 engine은 Car의 부속품 즉 혼자서는 쓸수없는 클래스가 되며 이를 포함 관계라고 한다 Car안에 engine을 포함시키기 위해서는 클래스 자체를 멤버 변수로 선언해야한다; Engine 클래스를 참조하는 engine 이라는 변수를 선언하고 엔진 클래스에는 start라는 메소드와 stop이라는 메소드를 작성해보자 내가 Car클래스에서 engine변수를 이용해 메소드를 호출하려면 어떻게 해야할까? 답은 간단하다 .연산자를 통해 메소드를 호출하면된다 Car 메소드 안에 startCar 메소드를 만들어 engine.start 메소드를 호출하여 메세지가 같이 출력되게 만든다 여기서 문제 한가지 이대로 CarTest라..
코딩을 하다보면 똑같은 멤버변수(속성)을 가지는 여러개의 클래스를 작성할때가 있다 그 중에서도 하나의 상위클래스에 여러개의 하위클래스가 그 속성값을 가질때가있는데 예를 들어서 Hero(영웅)이라는 클래스에 name,hp라는 속성이있다고 하자 그렇다면 내가 새로운 영웅들을 만들때 그 영웅들에겐 name과 hp속성만을 넣고싶을때 이때 활용할수 있는것이 상속이다 영웅이 가진 속성,메소드들을 내가 만들 새로운영웅클래스들에게 물려주는것이라고 할수있다 연습문제를 통해 알아보자 Cal이라는 클래스에 (sum) 더하는 메소드와 (multiplry) 곱하는 메소드를 만들어 보았다 이제 cal2라는 클래스를 만들어 cal의 메소드들을 상속시켜보도록 해보자 상속을 시키려면 extends라는 명령어에 왼쪽에는 자식이 되는 클..
메소드 오버로딩이란? 같은 이름의 메소드를 여러개 생성하여 하나의 메소드에 다양한 기능을 넣는것을 의미한다. 위 사진과 같이 add라는 하나의 메소드에 여러가지 기능을 넣어 매개변수에따라 값이 달라지게 만들수있다.
배열은 하나의 변수에 여러개의 값을 저장하기 위해 필요한 기능이다 배열을 선언하는것은 그냥 변수를 선언하는것과 차이가있다 한번 알아보도록 하자 배열을 선언하는 방법에는 두가지가 있는데 위에것이 초기화와 동시에하기 쉽기때문에 우리는 위에것에 익숙해져야한다 우선 왼쪽의 []는 정수형 배열이라는 것을 상징하는 의미이고 오른쪽의 []는 이 배열의 공간크기를 상징하는 의미라고 생각하면 된다 배열도 heap에 저장되는 객체이기때문에 객체를 생성해주는 new키워드를 사용한다. 배열안에는 순서를 정해주는 저장공간을 인덱스라고 하는데 이 인덱스의 시작번호는 0부터 시작하게된다 따라서 인덱스의 번호끝자리는 배열의 크기 에서 1을 빼주면 된다 ex 배열의 크기 [26] = 인덱스 끝번호 [25] 배열의 초기화는 변수에 인덱..