T.김동식
지역내부 클래스 호출
. = in 개념으로 이해할것.
public class A {class B{}} //중첩 클래스
public static void main(String[] args) {
A a = new A();
A.B b= a.new B(); //로컬클래스: 메서드 안에 위치해있어 메서드가 실행되야만 사용가능한 클래스
}
global 영역의 데이터 사용
outClass 에서 inClass의 객체를 만들어 호출하면 inClass 함수에서도 부모클래스의 데이터를 사용할수 있다.
public class OutClass { //global 영역
int num = 10;
static int sNum = 20;
InClass inclass;
public OutClass() {inclass = new InClass();} //InClass 객체생성
void usingClass() {inclass.inTest();} //InClass 함수호출
class InClass {
int inNum = 100;
void inTest() {System.out.println(num);System.out.println(sNum);}
}}
Runnable
불필요한 class를 만들지않아도 함수를 이용할 수 있다.
Runable형 함수를 생성해 implements한뒤 run 함수를 설정해 출력할것을 세팅한다.
Runable을 담은 class outer객체/runable의 객세를 생성한 뒤 run함수를 실행하면 세팅된 값 확인가능.
public class Outer {
//java.lang.Runnable, @FunctionalInterface 함수형 인터페이스
Runnable getRunnable() { //Runnable형 함수생성
class MyRunnable implements Runnable{ //implements Runnable로 연결
@Override //run함수 Override 안내가 뜬다.
public void run() {System.out.println("hi");}
return new MyRunnable(); //return 안내가 뜬다.
}
public class LocalInnerTest {
public static void main(String[] args) {
Outer outer = new Outer(); //outer 객체를 만들어서
Runnable runnable = outer.getRunnable(); //함수형인페이스
runnable.run();//hi
}}
HashMap
import java.util.HashMap;
import java.util.Iterator;
hashmap = new HashMap<Integer, Member>(); // HashMap, collection.MemberHashMap.hashmap
void addMember(Member member) {hashmap.put(member.getMemberID(), member);} //addMember 세팅
boolean removeMember(int memberID) {
if (hashmap.containsKey(memberID)) { //removeMember(memberID)를 실행했을때 hashmap에 해당 키가 있으면 실행
hashmap.remove(memberID); //삭제
return true; //삭제확인
}
System.out.println(memberID + "가 존재하지않습니다."); //없을경우 안내한다.
return false; //삭제불가
void showAllMember() {
Iterator<Integer> ir = hashmap.keySet().iterator(); //hashmap에 있는 key를 불러내어 iterator에 저장
//java.util.Iterator<Integer>
//Set<Integer> java.util.HashMap.keySet(), Returns a Set view of the keys contained in this map.
while (ir.hasNext()) { //Iterator ir에 객체가 없어질때까지
int key = ir.next(); // 다음키들을 알아내어
Member member = hashmap.get(key);
//Member java.util.HashMap.get(Object key)
//Returns the value to which the specified key is mapped,or null
//키값에 맞는 value를 get하여 member변수에 할당,
System.out.println(member); //while문으로 반복 출력
}
MemberHashMap hashMap = new MemberHashMap(); // 위에서 설정한 class 객체를 만들어
//멤버를 세팅하고
Member member1 = new Member(11, "박상희1");
Member member2 = new Member(12, "박상희2");
Member member3 = new Member(13, "박상희3");
//hashMap에 추가
hashMap.addMember(member1);
hashMap.addMember(member2);
hashMap.addMember(member3);
hashMap.showAllMember();
[출력결과] //데이터 확인
11 박상희1
12 박상희2
13 박상희3
hashMap.removeMember(11);
hashMap.showAllMember();
[출력결과]//삭제확인
12 박상희2
13 박상희3
TreeSet
데이터가 중복되지않고, 순서대로 정렬됨.
import java.util.TreeSet;
TreeSet<String> treeSet = new TreeSet<String>(); //TreeSet생성
//데이터 추가
treeSet.add("홍길동");
treeSet.add("강감찬");
treeSet.add("이순신");
treeSet.add("이순신");
System.out.println(treeSet); //[강감찬, 이순신, 홍길동]
//The elements are ordered using their naturalordering
TreeSet<Integer> treeSet1 = new TreeSet<Integer>();
treeSet1.add(23);
treeSet1.add(10);
treeSet1.add(48);
treeSet1.add(15);
treeSet1.add(7);
treeSet1.add(22);
treeSet1.add(56);
System.out.println(treeSet1); //[7, 10, 15, 22, 23, 48, 56]