웹개발때 버튼 객체를 만들 때 많이 쓰는 코드
객체지향 > 클래스 간의 상호작용
클래스는 독립적으로 존재하는게 좋지만
하나의 클래스만 상호작용하는 경우
내부 클래스로 작성하는 편.
클래스 맴버를 쉽게 사용할 수 있음
코드의 복잡성을 줄일 수 있음
![](https://velog.velcdn.com/images/kgsong8020/post/0ed87660-b41a-4764-a097-db6f46c87df4/image.png)
A 클래스의 지역변수를 static B에서 사용할 경우
A클래스를 선언하지않으면 B클래스 실행이 안됨!
해당 클래스와 긴밀한 관계를 맺는 구현 객체를 만들기 위해 클래스의 멤버로 선언된 인터페이스
![](https://velog.velcdn.com/images/kgsong8020/post/8bf0a17b-52e2-47ca-8466-32b0bb247a3f/image.png)
중첩 클래스의 특수한 형태
명시적으로 선언 안하기 때문에 코드가 단순해짐
쉽게 객체 생성가능
익명 클래스는 무조건 부모 클래스가 있어야 댐
자바 라이브러리
개발자가 편리하게 사용할 수 있도록 패키지나 모듈을 압축한 파일
![](https://velog.velcdn.com/images/kgsong8020/post/cc26ce75-583f-4ef0-9663-e491496e8f6b/image.png)
패키지
상호 관련있는 클래스와 인터페이스를 한 곳에 묶어놓은 것
모듈
패키지와 라이브러리를 묶어놓은 것
hashCode()
>인스턴스의 저장 주소 반환
같은 값을 참조하는지 판단(논리적)
Equals()
값이 같은지 판단(물리적)
Clone()
객체정보가 동일한 또다른 인스턴스 생성
모호함이 증가함! 객체 보호가 안되기때문에 사용하지않음.
![](https://velog.velcdn.com/images/kgsong8020/post/ec147d0e-ab1d-42cc-8a45-19374e0cd536/image.png)
문자열을 변경하거나 연결할 때 StringBuffer와 StringBuilder 사용!
Integer 클래스가 제공하는 주요 메서드
날짜, 시간, 리스트, 벡터, 헤시테이블 ,컬렉션(자바의 자료구조) 등
Array 배열 비교,복사,정렬
Calender 날짜와 시간 정보가 필요할 때 사용
Date 밀리초 단위의 현재시각이 필요할 때 사용
StringTokenizer 특정 문자로 구분된 문자열을 뽑아낼 때 사용한다.
Random 난수가 필요할 때 사용한다.
Sort(array); 정렬
binarySearch(array, string ); 인덱스 반환
Fill();
기본 구분자는 공백, 탭, 줄바꿈,복귀, 용지먹임문자(서식구분문자)