객체 생성 : 만들어진 객체 사용, 변수, 메서드 혹은 멤버 필드
class_name 변수 = new class_name_method();
기본 자료 타입 변수는 선언하면 메모리 공간이 할당됨.
‘레퍼런스 타입(배열, 클래스, 인터페이스)’은 new를 이용해서 객체를 생성하기 전까지는 메모리 공간이 할당되지 않음.
레퍼런스
- " == " : 메모리 주소 비교 / 기본형에서는 크기 비교
- “equals()" : 레퍼런스 에서만 쓰임. 내용 비교
객체 생성과 패키지
생성자(Constructor) : class 이름과 동일한 이름을 갖는 메서드
default 생성자는 프로그램에서 생성자를 정의하지 않는 경우에 자바의 컴파일러에 의해서 자동적으로 생성된다.
class 변수(객체) = new 메서드();
I) memory 할당
ii) default 초기화
iii) 명시적 초기화 : 생성자에서 명시한 경우
this : 클래스 내에서 자기 자신을 자리키는 레퍼런스
1. 상속받은 부모 클래스가 아닌 자기 자신의 멤버필드나 메서드를 명확히 표현하기 위해서 사용한다.
2. this 는 객체 전체를 함수(메서드)의 매개변수로 전달
this()는 생성자 안에서만 사용가능. 명시적인 초기화 이용시 사용
Overloading : 한 클래스 내에서 함수(메서드) 이름을 동일하지만, 함수의 매개변수(타입이나 수)가 다른 경우.
상속(Inheritance)
<!--[if !vml]--><!--[endif]-->
class 자식 클래스 extends 부모 클래스
크기 비교 : 부모 클래스 > 자식 클래스
super : 상위 클래스(부모 클래스)의 메소드나 멤버필드 필요시 자식 클래스에서 사용
super() : 상위 클래스(부모 클래스)의 생성자 호출
오버라이딩(Overriding) : 얹어타기 : 나는 차려진 밥상에 숟가락만 얹는다.
상위 클래스(부모 클래스)에 있는 메서드를 서브 클래스에서 다른 작업을 하도록 동일한 함수 이름으로 재정의 하는 것.
▩ 추상화 클래스를 상속받아 사용할 경우 대부분 오버라이딩
public abstract class Human {
public abstract void...
} |
public class Korea_human extens Human {
public void ...
} |
public class Honeymon extends Korea_human {
public void
} |
언어의 추상화
추상화(Abstract) 물체 또는 현상의 주요 특성만을 표현하는 개념
1. 자료의 추상화 : 주어진 자료 구조, 자료를 사용자가 이해 가능하게 표현하는 방식
기본적 추상 : 저장값이 추상화, 컴퓨터의 자료를 bit 열이 아닌 자료의 성질,
기억 장소의 명칭을 이용하여 표현
구조적 추상 : 서로 관계가 있는 메모리 셀 간의 구조에 대한 추상화로서 구조적
자료형인 배열이 이에 해당
단위적 추상 : 추상 자료형 / 자료의 캡슐화(package, class)
2. 제어의 추상화 : 의미있는 여러 제어문(기계어)를 사용자가 이해 가능하게 표현하는 방식으로 조건문, 반복문 등이 이에 해당
기본적 추상 : 몇 개의 명령문을 하나의 추상적 구문으로 구성
구조적 추상 : 구조적 명령문 : 조근을 포함하여 실행될 명령문을 단일 그룹으로...
내용이 많이 부족합니다. ^^;;
아직 제 자신의 머릿 속에서 추상화라는 개념이 확실히 자리잡힌 상황이 아니라서 그런 것 같습니다.
내 주변에서 일어나는 일들에 대해서 추상화를 하는 연습을 많이 해볼 예정입니다. ^^; 그렇게 적용하는 방법 밖에 없네요. ㅎㅎ