제어자(modifier) 클래스와 클래스의 멤버(멤버 변수, 메서드) 에 부가적인 의미 부여 ▶ 접근제어자 : public, protected, (default), private ▶ 그 외 : static, final, abstract, native, transient, synchronized main() 메서드를 가지지 않는 대부분의 클래스는 외부 클래스에서 이용할 목적으로 설계된 라이브러리 클래스이다. 라이브러리 클래스를 설계할 때에는 외부 클래스에서 접근할 수 있는 멤버와 접근할 수 없는 멤버로 구분해서 필드, 생성자, 메서드를 설계한다. 객체 생성을 막기 위해 생성자를 호출하지 못하게 하거나 객체의 특정 데이터를 보호하기 위해 해당 필드에 접근하지 못하도록 막아야 한다. 또한 특정 메서드를 호출할..
전체 글
보호되어 있는 글입니다.
데이터베이스 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다. 데이터베이스에 속해있는 모델은 다양하다. 데이터베이스를 간단히 정의하면 ‘대용량의 데이터 집합을 체계적으로 구성해 놓은 것이다. DBMS 데이터베이스 관리 시스템 다수의 사용자들이 데이터베이스 내의 데이터를 접근 할 수 있도록 해주는 소프트웨어 도구의 집합이다. 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다. 파일시스템의 단점을 보완하고 대량의 데이터를 보다 효율적으로 관리하고 운영하기 위해서 사용되기 시작하였다. DBMS의 유형은 크게 계층형Hierarch..
참조변수 super - 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자)내에만 존재 - 조상의 멤버를 자신의 멤버와 구별할 때 사용 ex1) Parent 클래스와 child클래스가 생성되어있다. child클래스는 상위클래스인 Parent 를 상속받고 있으며 각 클래스에는 int x 변수가 들어있다. c.method() 메서드를 호출하면 참조변수 c가 가르키는 child 객체가 생성된다. 이름이 겹칠 때에는 조상의 멤버에는 Super. , 자신의 멤버에는 this.을 사용하여 구별한다. 결과 x = 20 this.x = 20 super.x = 20 ex2) ex1과 비슷하지만 상위클래스인 Parent2에만 int x 변수가 있다. x가 상위클래스에 하나밖에 없기 때문에 Super.x 와 this.x..
메서드 오버라이딩(Overriding) - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것 class Point{ int x; int y; String getLocation() { return "x:" + x + ",y:" + y; } } class Point3D extends Point { int z; String getLocation() { //오버라이딩 return "x:" + x + ",y:" + y + ",z:" + z; } } 오버라이딩 메서드를 선언할 때 주의할점은 선언부는 그대로 써야한다. 변경이 불가능하며 내용만 변경을 한다. 오버라이딩의 조건 1. 선언부가 조상클래스의 메서드와 일치해야한다. 2. 접근제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. 3. 예외는 조상 클..
단일상속 java는 단일상속만 허용한다. (C++ 은 다중상속 허용) class TvDVD extends Tv, DVD { //에러 조상은 하나만 허용된다. } Tv와 DVD 의 메서드가 void power() 로 같고 내용이 다르다고 할 때 TvDVD가 상속받을 때 충돌이 일어난다. 그래서 자바는 다중상속을 하지않고 단일 상속으로 사용이 가능하다. 인터페이스를 이용하면 이러한 충돌문제를 해결하며 다중상속 효과를 낼 수 있게 한다. 인터페이스를 사용하지 않고 다중상속을 작성하는 방법 ▶ 비중이 높은 클래스 하나만 상속관계로, 나머지는 포함 관계로 한다. TvDVD 클래스는 Tv를 상속한다. DVD 클래스는 객체를 생성하고 메서드 선언을 하여 사용을 하게 한다. 이렇게 하면 다중상속과 같은 효과를 나타낼 ..
포함관계 ▶ 포함(composite)이란? - 클래스의 멤버로 참조변수를 선언하는 것 - 작은 단위로 클래스를 만들고 이것을 조합해서 클래스를 만듬 [ Circle 클래스가 Point를 포함하는 관계 ] 클래스의 멤버로 참조변수. 다른 클래스타입의 변수를 선언하고 그 타입의 객체를 만들어준다. 클래스 간의 관계 결정 ▶ 상속관계 ~은 ~이다 (is - a) ▶ 포함관계 ~은 ~을 가지고 있다. (has-a) 1. (포함) 2. (상속) class Point { int x; int y; } 메모리구조
상속 (Inheritance) 1. 기존의 클래스로 새로운 클래스를 작성하는 것 ( 코드의 재사용 ) 2. 두 클래스를 부모와 자식으로 관계를 맺어주는 것 객체지향프로그램에서 부모클래스(상위)에서 자식클래스(하위)에게 물려줄 수 있다. 상속은 이미 잘 개발된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄여준다. B b = new B(); b.field1 = 10; b.method1(); b.field2 = "홍길동"; b.method2(); 클래스 상속 class 자식클래스 extends 부모클래스 { //필드 //생성자 //메서드 } 자손은 조상의 모든 멤버를 상속받는다. ( 생성자, 초기화블럭제외 ) 자손의 멤버개수는 조상보다 적을 수 없다. (같거나 많다.) 부모의 변경은 자손..
보호되어 있는 글입니다.
1. 패키지 자바에서는 클래스를 체계적으로 관리하기 위해 패키지(package)를 사용한다. 우리가 폴더를 만들어 파일을 저장 관리하듯이 패키지를 만들어 클래스를 저장 관리한다. 패캐지는 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일 하더라도 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체 이름은 "패키지명+클래스명"인데 패키지가 상, 하위로 구분되어 있다면 도트(.)를 사용해서 다음과 같이 표현한다. 상위패키지.하위패키지.클래스 Person 클래스가 com.mycompany 패키지에 속해 있다면 Person클래스의 전체 이름은 com.mycompany 폴더에 Person.class 가 위치한다. 클래스만 따로 복사해서 다른 곳으로 이동하면 그 클래스는 사용할 수 없기에 클..