innn

API 클래스에 대하여 본문

JAVA/자바

API 클래스에 대하여

33삼 2022. 6. 24. 11:22

API는 암기하는 거 아니라, 쓰이는 거.

 

수업 공지 

 

매주 금요일은 프로그래밍 오후때 함. 보낼 때 shkim_project3.zip 이런 식으로 보내면 됨.데드라인 리밋 없음

오늘은 abstract 그거 가지고 인터페이스. Exception 핸들링, 스레드로도 바꿔보고. 

 

클래스 정리

 

class A {

field  < 1.고유의 값 2. 상태값 3. referenc 변수 >    /클래스는 필드 먼저 생각해야됨.

constructor < 1. 파라메타 받아서 초기화 하는 거. 2. 초기화할 필요 없으면 default 컨스트럭터 (이건 안써도 되지만, 넣는게 좋음. 실수를 안 하니까) 밖에서 받아서 초기화할때 쓰려고 쓰는 게 생성자>

method {....} < concrete method 가 보이면 method라고 생각하면 됨. >

상속하는 건 + a 가 있을 때만 상속. 

 

 

abstract class 는 다 똑같은데 뉴 할 수 없음.

왜? 필드 당연히 있고, 콘크리트 메소드가 있을 수도  있고 없을 수도 있지만 abstract 메소드가 존재하기에 abstract클래스가 된거임. 추상 메소드가 있으니 추상 클래스임. 추상 메소드가 있기 때문에 new로 생성 못함. 

 

interface 는 누군가 구현객체가 있으면 사용하는 객체 직접 건드리는게 아니라 폴리모피즘 통해서 통해서 가ㅡㄴ 것 

필드가 됨 뭐만 돼? 상수만 됨.

새로운 기능이 필요할 때도 있는데, 메소드 2 만들어서 임플리멘트하는 친구는 할 수 있짐나 디폴트는 기존건 안해도 되고 새로운건 뉴하면 되고. ((default 는 나중에 나오는 거임. 유지보수용이라 설계할 땐 생각 안해야 됨.))

 

 

 

API 암기하는 것 아님. 

 

자바의 최상위 클래스. 다른 클래스를 상속하지 않으면 암식적으르오 Object 클래스를 상속받고 있는 거임.

어제 컬렉션에서 equals 콜됐던 게 object클래스 를 상속 받고 있기 때문임.

 

equals는 기본적인 object클래스의 메소드.

==은 번지를 참조함. equals는 값을 비교

저장된 데이터가 동일할때를 논리적 동등이라고 함. 

 

오버라이드 만약 지우면, 주소번지를 비교함.

오버라이드하면, 데이터가 값을 비교함

오버라이드 지웠을 때 콘솔 결과값. 주소번지를 비교하기에 동등하지 않다고 나옴

Hash 라는 단어 자체가, 이 구현 코드가 hash알고리즘으로 구현돼있는것임.

Hash 알고리즘은 인풋이 다르면 아웃풋도 달라. 그래서 정보보안 분야의 필수.

인풋 데이터를 객체의 번지수를 파라미터로 쓴거임.

해시 코드가 같다는 건 그래서 같은 객체 인거고, 해시코드가 다르면 같은 객체일 수 밖에 없는 것임

오버라이드 했다는 말 = 오브젝트에서 얘 쓰겠다는 말.

오버라이드르 막았다면, 오브젝트의 해쉬코드를 쓰겠다는 것임.

이 코드에선 안 보이지만 모든 클래스는 object라는 최상위 클래스를 이미 상속을 받고 있는 것임.

다 갖고 있으니까 굳이 익스텐드, 오브젝트 안쓴거임.

객체 정보를 프린아웃해주 니까 굉장히 많이쓰임.

 

객체의 문자 정보? 객체를 문자열로 표현한 값.

 

깊은 복제를 하고 싶으면 override 하면됨.

객체를 소멸하면 주소가 없으니까 아예 없어짐. 

가비지 콜렉터가 콜하는게 finallize() 인 거임.

될 수 있으면 소멸자는 사용하지 말라. 왜? 위험하니까. gc도 일부만 삭제함.

이런 메카니즘이 있다는 걸 이해는 하고 있어야함.

 

Object

오브젝트는 랭 밑에 있는 거임. 

오브젝츠!!는  유틸 밑에 있는 것임.

리더빌리티가 더 좋음.

 

equals는 주소 번지로만 비교

이콜스 오버라이딩 안하면 주소로만 비교하잖아

deep equals는 항목 값까지 비교하는 것.

 

여기선 파라메타를 n개 받을때 쓰는 거임.

hashcode 부분이 배열로 만들여저서 필요할땐 이렇게 쓰는 거임.

 

얜 null이라고 null 스트링으로 써줌.

이클립스 콘솔이 모니터를 출력하는 검.

exit은 모든 랭귀지에서 프로그램을 종료할때 씀.

 

return 0; >>> 정상 종료 로그가 남음. (그냥 안써도 메인메소드는 종료됨. 그러나 로그는 남지 않음)

 

 

운영중인 코드를 (실행중인 코드를) 내가 확인하고 싶을때 (신입사원들)

운영중인 시스템을 보려고 할 때 굉장히 필요한 것이 리플렉션.

이건 잘 안씀 백에서
이건 엄 청 자주 씀

offset은 컴퓨터에서 ~~ 위치에서 끝까지 읽어라 이 뜻임.

데이터만 읽을거면 헬로우만 읽어야하는데, 엔터까지 읽으니까. offset을 써주ㅡㄴ 거임.

trim 전처리작업에 쓰임. 데이터 만질 때 필수적.

(euckr 이라는 말을 보게 되면 utf8로 열어보면 됨)

 

인코딩 : 프로그램 언어로 hello 를 74로 한것 처럼

디코딩  : 원래 언어로 다시 hello로 바꾸는 것 

키워드를 이해하는 정도로 생각해라

 

한글 하나당 3바이트니까 유니코드로 15

컨버젼을 하면 번호가 있는 것.

 

'JAVA > 자바' 카테고리의 다른 글

예외 클래스  (0) 2022.09.26
UML 클래스 다이어그램의 관계  (0) 2022.09.06
starUML을 이용해 UML 그리기  (0) 2022.09.02
2022.07.18 자바 웹 프로그래밍과 ERD  (0) 2022.07.18
2022.06.30  (0) 2022.06.30