본문 바로가기

Java

(17)
상속 : 추상 클래스 추상 클래스추상.. "어떤 대상 혹은 세계로부터 하나의 상을 추려내어 표현하는 것을 의미한다"고 한다.새, 곤충, 물고기 —공통된 특성→ 동물삼성, 현대, LG —공통된 특성→ 회사 Bird.class, Insect.class, Fish.class(실체 클래스) -→ Animal.class(추상 클래스) 추상 클래스는 실체 클래스의 공통되는 필드와 메소드를 추출해서 만들었기 때문에 객체를 생성x 추상 클래스를 만드는 이유는 뭘까?실체 클래스들의 공통된 필드와 메소드의 이름을 통일할 목적 Bird.class, Insect.class를 다른 사람이 정의한다고 하면... 누구는 무언가 먹는 행위를 지정하는 메서드를 eat()으로 쓰고, 누군가는 eatting()으로 쓸 수 있다. 동일한 데이터와 기능인데 이름..
상속 : 타입 변환과 다형성 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 사용할 수 있도록 하는 성질이다. 도형(Figure)라는 클래스를 정의해보자class Figure{ double getArea() { return 0.0; } public String toString() { return "이것은 도형입니다."; } } Figure를 상속하는 Sagak 클래스class Sagak extends Figure { int width, height; double area; public Sagak() { this.width = 1; this.height = 1; area = getArea(); //this(1, 1); 로 쓸 수 있다. } public Sagak(int width, int height) { this.wi..
상속 : Protected 접근 제한자 접근 제한자는 public, protected, default, private 네 종류가 있다. protected는 public과 default 접근 제한의 중간쯤에 해당한다.같은 패키지내에서 default와 같이 접근 제한이 없지만, 다른 패키지에서는 하위 클래스만 접근을 허용한다. pacage package1; public class A{ protected String field; protected A(){ } proteted void method() { } } package package1; public class B{ public void method(){ public void method{ A a = new A(); a.field = "value"; a.method(); } } }같은 패키지내에..
상속 : final 클래스와 final 메소드 final 클래스와 final 메소드final 키워드! 클래스, 필드, 메소드 선언 시 사용할 수 있는데. 최종상태고 절대 수정할 수 없단 말이다. 메소드는 할당 된 값을 바꿀 수 없다는 걸 알겠는데.. 그럼 클래스와 메소드에서 final 키워드를 지정한다는 건 무슨 의미일까? 클래스public final class 클래스 {...}이건 상속!이 불가능 하단 말이다. java의 대표적인 예는 자바 표준 API에서 제공하는 String 클래스이다.이런 식으로 선언 되어 있다. →public final class String {..}public class newString extends String() {...} // 삐-! 안 됨 왜 쓰는가?아까 오버라이딩 할 때 봤던 그림이다.상위 클래스의 내용을 바꾸면..
상속 : 메소드 재정의(오버라이딩) 만약 상위 클래스의 내용을 바꿔서 하위 클래스가 사용하고 싶다면? 상위 클래스의 메소드를 바꾸면? 다른 클래스도 영향을 받아; 문제가 생기면 하나하나 뜯어봐야해..그렇다고 상위 클래스를 새로 만들어? 메소드 하나 바꾸자고..?그래서 메소드를 살짝 수정 할 수 있게 해놨음. (오버라이딩이라고 함)// 상위 클래스 public class Calculator{ double areaCircle(double r){ System.out.println("Calculator 객체의 areaCircle() 실행"); return 3.14159 * r * r; } }// Caclulator상속한 하위 클래스 public class Computer extends Cacluator{ @override //생략 가능하나.. 개..
상속 : 상속의 개념 상속의 개념자바는 부모 클래스의 멤버를 자식 클래스에게 물려줄 수 있다.상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄여준다 만약 부모 클래스가 이렇게 생겼다? (상위 클래스)public class ItsA{ private String field0; int field1; void method1() {...} }자식 클래스는 extends 키워드를 사용해서 상속할 수 있다. (하위 클래스)public class ItsB extends ItsA{ String field2; void method2() {...} } ⇒ 보이진 않지만.. 결과적으로 하위 클래스(class ItsB)는 상위 클래스가 가진 것들을 가지고 있다.int field1, void method1()..
참조타입 참조타입 1. 데이터 타입 분류데이터 타입은 기본 타입(primitive type)과 참조 타입(reference type)이 있다. 기본 타입에는 byte, char, short, int, long, float, double, boolean이 있고, 참조 타입에는 배열타입, 열거타입, 클래스, 인터페이스가 있다. 둘의 차이는 메모리에 어떻게 저장되냐인데 기본 타입은 메모리에 실제 값 자체가 저장되고, 참조 타입의 경우에는 메모리에 주소 값을 저장한 후 주소 값으로 객체를 참조한다. 2. 메모리 사용 영역java.exe 실행 시 JVM이 메모리 공간을 할당 받는데 메모리를 다음 그림 처럼 구분해서 사용한다. 메소드 영억, 힙 영역, 스택 영역메소드 영역JVN 실행 시 생성 되고, 모든 스레드가 공유하는 ..
변수와 타입 2.1 변수 2.1.1 변수란? 프로그램은 작업을 처리하는 과정 중 데이터를 메모리에 저장한다. 변수(Variable)는 값을 저장할 수 있는 메모리 공간을 의미한다. 이름이 변수인 이유는? 값이 변할 수 있기 때문 2.1.2 변수 선언 변수를 쓰려면 먼저 변수를 선언해야한다. 데이터 타입과 변수 이름을 정해준다. int age; //정수(int)값을 저장할 수 있는 age 변수 선언 double value; //실수(double)값을 저장할 수 있는 value 변수 선언 같은 타입의 변수는 , (콤마)를 이용해서 한꺼번에 선언할 수도 있다. int x, y, z; 변수 명명 규칙 java에서 정한 명명 규칙 규칙 1) 첫 글자는 문자이거나 $, _여야하고 숫자로 시작할 수 없다. * price, $pr..

반응형