객체지향이라고 하는것이 결국 뭐냐라고 했을 때 쓰는 이유는
상속을 하고 generic프로그램을 지원하기 위한 다형성.( 수퍼클래스에서 서브클래스들 간에 모든 기능들을 쉽게 access가능하도록 하는 기능을 다polymorphis을 하기 위해 upcast가 필요하고 upcast가 가능하다는것은 super와 sub의 관계가 형성된다는 것.
sender class와 handler class 가 반응하는 것을 확인
up-cast visibility가 줄어들었음을 확인하고 폴리모티즘에 aceess 했다는 것 .
super class만들고 generic를 통해서 버스나 트럭의 redefinition된 다형성으로 변화된 프로그램등을 손쉽게 access 가능했다는 것.
super가 없었다면 개개인의 sub를 os에 업데이트하고 재정의해야하는 것이 방지된 것으로 볼 수 있음.
함수를 호출하는 것 만으로 up-cast가 자연스럽게 이뤄지는 것 -> 객체지향이 가지고 있는 목적을 이해했다고 볼 수 있음
다형성이 만들어진 함수.. 어차피 부모것 2개 찍고 자신이 새롭게 가진 값을 1나 찍는것 . visibility 가 늘어났다고 생각할 수 있지만 그렇게 생각하면 안됨
try catch 문으로 up-cast가 내려왔는지 확인해야함
dynamic 타입
인터페이스는 정리를 해보면 super class는 다중상속이 만들어지지 않기 때문에 전체 프로그램 차원에서 서브클래스, 수퍼클래스로 이뤄진 상속의 관계를 모아 서비스를 구현하고 싶을 인터페이스를 사용
마치 인터페이스가 수퍼클래스 처럼 보이고 definition을 해주면 상속을 받아 method를 구현.
builder에 들어가면 계층구조가 잘 보이지 않음
원래는 계층구조의 프로시저가 보이지만 class builder는 수평으로 만들어지기때문에 계층구조의 파악이 어려울 수 있음.
더블클릭을 하면소스코드가 열리고 typing 하는 것 . 클래스 빌더상 보이지 않는 상황에서 repository를 하면
se24
instance는 보통의 아밥클래스, main으로 사용할 예정
aliases는 interface를 만들 때 사용
클래스 빌더를 쓰면 코딩을 할 필요없이 입력으로 attributes선언이 가능
methods를 만든느 것도 탭에서 가능
method 를 더블클릭시 expand되면서 코드를 입력하면 됨 .
signature를 누르면
위쪽에 파라미터도 보여줌
객체가 만들어지면 (인스턴스는 객체가 없으면 안됨 ) 내부적으로 create object 실행가능한 형태로 바뀜.
인스턴스 에트리뷰트 속성이나 메서드를 실행할 수 있음
스태틱은 객체를 만들지 않더라도 바로 실행가능한 버튼이 떠있음
시스템과 연결해서 사용하면 됨
report프로그램 start of selection해서 쓰거나 패턴에다 놓고 클래스 이름을 치던지 디자인 하면 완료 되는 것
create- class library - class ![]
final 제외
final 은 redefidnition 이 안되게 만드는 것 .
안에 들어가 있는 모든 특성들이 final ( metod )로 바뀜
message class
클래스 안에 가지고 있음.
class based message 를 쓰는 이유는 기존의 버전 6.4 이전에 OTR 이라고 해서 아마 온라인 텍스트 레파지토리라고 해서 class based message 대신 사용
shared memory enabled
constructor는 누구나 실행할 수 있게 public으로 만들어야 함
paramether 클릭
인터페이스는 super class.에서 구현
method 안에 자동으로 상속받아서 들어와 있는 것을 볼 수 있음.
근데 editing은 안됨.
redefine method ,. 파라미터를 바꿀 수 없음.
가장 큰 첫번째 이유는 덤프를 발생시키지 않기 위해.
프로그램을 운영하다가 다운되어버리는 것 (crush)
raise exception을 올리면 어떤타입으로 쓸 지 써야하는 것
객체를 sender에서 던져주는 것
exception이 발생했을 경우. over flow ... 등 프로그램의 run time시에 발생하는 그런 특정 class의 하위서버 클래스를 트리거 시키는 역할을 raise exception이 sender에서 하고 있는 것
프로그램 로직을 만들 때 프로그램에서 발생할 수 있는 에러를 생각해야 함.
케이스별로 넣어놔야 함. -> handling 한다. try catch 문으로 잡음
숫자를 넣어햐하는데 문자를 넣는
실행해서 보면 try. catch 문으로 구성되어 있으며
정수가 아닌 값을 넣었을 때
예를들면 메서드 정의에 끝에다가 raising 에 올려주고
서브루틴이라면 서브루틴도 raising이라고 쓸 수 잇음
객체가 아닌 다른 곳에도 사용할 수 있음.
methods 라고 parameter . form은 end form 끝에 raising이라고 쓰고 가르켜줘야 함.
end try 전에 handling 해야 할 정책
retry 는 처음부터 다시 시작 resume은 에러가 났던 그 지점에서 다시 시작하는 것 .
end try 전에 handling 해야 할 정책
retry 는 처음부터 다시 시작 resum은 에러가 났던 그 지점에서 다시 시작하는 것 .
처음은 타입. 같은 객체를 쳐다보고 있음. 각각의 레이어마다 만드는거랑
한개를 만들어서 공유하는거랑은 선택
클래스에서 인스턴스를 만든 다음에 만든 객체를 돌려주는 함수를 factory method라고 함.
객체를 만들어서 요청한 사람에게 return해서 주는 것
객체를 만들기 전에 조건을 준다거나. 객체를 생성해서 준다는 등의 메서드 안에 코드를 실행할 수 있게 되어있음.
perform , read, lock을 할 수 잇으며
한 개 이상의 method를 가질 수 있으며 signature가 다양할 수 있음
constructor는 parameter는 importing과 exception만 가지지만 factory는 내가 원하는대로 다양하게 넣을 수 있으며
class의 visibility를 주고 싶을 때 등의 여러 장점들이 있다.
객체를 만들어서 돌려주는 것
객체를 읽어와서 있으면 돌려주고 없으면 만드는 것
factory method의 기능을 충실하게 수행하는 것
type check 이나 lock을 수행.
특별한 케이스를 single tone이라고 한다.
인스턴스를 하나만 관리하고 싶을 때
여러개를 만드는데로 돌려주는것이 아니라 너무 많은 객체 생성이 아닌 하나로 만들어서 사용하는 것.
public , static하게 만들고 class와 get을 같이 활용하는것
factory라고 안쓰고 static한 함수를 써서 factory를 구현하는 것
class에서 instance를 하나만 저장.
factory method로 사용되는 get instance를 사용해서 오직 한번만 생성할 수 있도록 if문으로 묶어버리는 것
1은 2를 친구로 생각.
private section 에 있는 data 는 1번클래스에서만 접근이 가능
외부, 서브클래스에서 접근이 안됨
lcl2 definition 에서 private라고 적힌 a1 객체를 만들어서 만드는 것 뿐만 아니라 private 영역에 접근이 가능. 1번이 2번에 grant 를 한다.
하지만 원방향. 2가 1로는 갈 수 없다.