본문 바로가기

전체 글337

[java] abstract extends 를 통한 상속이 강요되는 추상적인 abstract 메소드를 하나 이상 포함한 클래스를 abstract 클래스라고 한다 간단히 설명하자면 다양한 경우의 수가 존재하는 것을 만들고자 할때 그 공통적인 개념만을 클래스로 만들고 구체적인 부분은 상속을 통해 자식 클래스에서 가져와 재정의 overriding 하여 사용하는 것이다 abstract 클래스는 abstract 메소드를 하나 이상 가지고 있으므로 자신만으로는 정보가 불완전 하므로 제대로 정의내릴수 없다. 즉 인스턴스화가 불가하다 상속을 통해 가져와서 overriding 으로 추상적인 부분(=설명이 부족한 부분)을 재정의하여야만 인스턴스화 시킬수있다 2022. 4. 25.
[java] overload, override overload overload 의 뜻은 과적하다, 과부하하다, 너무많이주다 이다 자바에서 변수의 경우 a = b 라면 b의 값을 a 에 준것이고, 여기서 a = c 를 하면 c의 값을 a에 주게되어 기존 b의 값은 사라져버린다. 이렇듯 하나의 변수에는 하나의 값만 가진다 하지만 메소드의 경우, a = b 로 b의 값을 a에 주고, a = c 로 c 의 값을 a 에 주어도 a는 b와 c 의 값을 모두 가질수 있다. 1:1 대응이 아닌 1:여러개 의 값을 가지게 하여 과적하게 하는 것을 overload 라고 한다 override 부모 클래스의 메소드를 자식 클래스에서 재정의 하여 사용하는 것, 부모 메소드 가져와서 덮어쓰기로 보면 된다 override 의 뜻은 이전 기능을 무시한다는 뜻이 있다 즉, 상속으.. 2022. 4. 25.
[java] this 와 super this 지역변수와 인스턴스 변수가 같은 경우 this 를 사용하여 클래스 명이 바뀌었을때 관리를 쉽게 할수있다 인스턴스 변수 : 클래스 내에서 선언한 변수 지역 변수 : 메소드 내에서 선언한 변수 super 상속관계에서 부모 클래스를 가져와서 매개변수에 값을 넣어 사용 시 super(매개변수) 를 사용한다 매개 변수가 없는 메소드를 가져올 시 매개변수를 넣으면 에러가 난다 "Unit.java" public class Unit { int hitPoint; // 인스턴스 변수 int speed; int range; int damage; public Unit(int a, int b, int c, int d) { this.hitPoint = a; // Unit이라는 메소드 내의 지역 변수, 여기선 같은 Uni.. 2022. 4. 25.
[java] 상속 extends 상속 extends 부모의 무언가를 자식에게 줄때 상속(Inheritance)라는 말을 쓴다 프로그래밍에서는 상속을 확장(extends) 이라고도 표현하고 extends 를 사용하여 상속기능을 한다 클래스 a 의 메소드와 변수를 다른 클래스가 갖도록(=사용가능 하도록) 하는 것. 재사용성,유지보수 편의성, 가독성, 코드량 함축의 장점이 있다 스타크래프트로 설명해보자 "Unit.java" public class Unit { int hitPoint; int speed; int range; int damage; } "TerranUnit.java" public class TerranUnit extends Unit { // 테란 유닛도 unit 의 성질을 가지고 있어야 하므로 unit 클래스를 상속하였다 bool.. 2022. 4. 25.