카테고리 없음

230116

Berylly 2023. 1. 21. 19:21

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]