레이블이 구인공고인 게시물을 표시합니다. 모든 게시물 표시
레이블이 구인공고인 게시물을 표시합니다. 모든 게시물 표시

2013년 10월 6일 일요일

[JAVA객체지향]자바,다형성,오버로딩,오버라이딩, 캡슐화, Late binding 1. 다형성(Polymorphism) 상속을 ...

[JAVA객체지향]자바,다형성,오버로딩,오버라이딩, 캡슐화, Late binding에 대해 알아봅니다.
1. 다형성(Polymorphism)
상속을 받은 것을 그대로 사용하지 않고 입맛에 맞게 바꾸어 줄 수 있도록 하는 것
다형성을 위해 자바에서는 메소드 overriding 과 메소드 overloading을 제공 한다.
상속계층 상에서 어떤 객체의 어느 메소드를 호출할 것인지를 결정하는 객체의 능력을 다형성 이라 한다.
사인곡선을 그리는 함수가 있다고 할 때 사용자는 파라미터로 radian이나 degree값을 넣게 되지만 둘 다 처리할 수 있다. 이것은 sine(int degrees)나 sine(float Radians)와 같이 동일 이름의 함수가 다른 파라미터로 두 번 선언되었기 때문이다.
오버로딩 or 오버라이딩을 통해 구현
2. 오버로딩(Overloading)
동일한 함수의 이름 사용 가능, 같은 클래스 내에 같은 이름의 생성자나 메소드를 사용하는 행위,매개변수의 개수와 타입이 달라야 한다

3. 오버라이딩
상위 클래스에서 정의된 함수를 하위 클래스에서 재 정의, 기존 클래스의 메소드 구현 부분만 약간 변화시켜 새로운 클래스를 생성할 수 있다. 매개변수의 개수와 타입이 같아야 한다.
상위 클래스로부터 메소드를 상속받을 때, 서브클래스 내에 같은 이름의 메소드가 있는 경우에?Signature가 다르면 중복(overloading)이 되고 Signature가 같으면 재정의(overriding)가 된다

4. Template : 타입을 인자로 하여 새로운 타입을 생성
5. 캡슐화(encapsulation)
객체는 자신이 수행하는 모든 행동과 속성을 다른 객체와 외부 세계에는 보이지 않는다
객체 자신의 Operation을 수행하고 결과를 내놓지만 그 Operation의 동작 원리는 숨기는 것이다.
높은 모듈성과 정보은닉을 제공
참고로 Late binding이란?
Virtual Method Invocation
 변수의 타입이 아닌 실제 메모리 영역을  차지하고 있는 변수가 참조하는 객체를  찾아 그메소드를 호출하는 것, 물론 변수의 경우 해당 사항 없다.(shadow variable, 가리기)

오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  




2013년 8월 8일 목요일

[오라클자바커뮤니티, JAVAORACLE교육]자바 JVM의 메모리 구죠, 자바교육

JAVA JVM의 메모리 구조


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  




JVM 의 실행 메모리 영역

메쏘드(method) 영역 : 클래스의 메소드에 대한 바이트코드, 전역변수(클래스 변수)
힙(heap) 영역 : 객체를 저장할때 사용하는 메모리
스택(stack) 영역 : 지역변수,함수의 인자,함수의 리턴값,리턴 번지
레지스터(registers) : 가상 머신의 현재 상태를 보여줌, 현재 실행되고 있는 메소드의 실행 포인터를 저장
실행 풀(Runtime Constant Pool) : 숫자 리터럴과 상수 필드 포함, 메소드 영역으로 부터 할당 받는다.


JVM 의 실행 메모리 영역 ]


메소드 내에서 객체 참조형으로 선언된 변수인 경우(String s = new String("abc") 일때의 s) 지역변수로서 스택에 위치하며 힙에 저장되어 있는 객체에 대한 참조값을 가지게 됩니다.
객체 참조형 변수의 값이 null 이라는 의미는 아무것도 참조하고 있지 않다는 의미 입니다.
New 연산자는 힙(heap) 메모리에 객체를 만들고 그 객체의 참조값을 반환 합니다.(Hello h = new Hello()) ---> Memory Heap에 Hello 클래스의 인스턴스(객체)를 만들고 그것을 스택에 있는 h라는 변수가 참조하도록 합니다. C에서의 포인터 변수와 유사 합니다.)
객체 참조 변수의 경우 대입, 메소드 호출시의 인자, 반환형 등으로 사용 될 때 참조 값만 전달 될 뿐, 객체 자체가 복제되어 전달되는 것은 아닙니다.
아래의 예제를 참고하세요

class C
{
public static void
main(String[] args)
{
int i = 3;
f(i);
}
static void f(int arg)
{
int i = 10;
double f = 3.14
}
}


이상 JVN의 메모리 영역에 대해 살펴 보았습니다.







[프리랜서] 자바, 스프링, xplatform 중급 이상 개발자 모집

[프리랜서] 중급 이상 개발자 모집


㈜오엔제이시스템즈에서 공공기관 SI프로젝트 중급이상 개발자 모집하고 있습니다.

경력 : 중급이상(KOSA기준)

위치 : 서울 강남

투입일시 : 8월중

기간 : 7 or 8개월(연장될 수 있으니 참고하세요)

필수조건 : Xplatform

우대조건 : Proframe, 회계업무경험자

경력기술서(skill inventory)를 아래의 이메일로 보내주시면 전화드리겠습니다.

manager@onjprogramming.co.kr


역량있는 개발자분들의 많은 지원 바랍니다.