<14:30 5교시>

package test.main;

import test.mypac.Apple;
import test.mypac.FruitBox;
import test.mypac.Melon;
import test.mypac.Orange;

public class MainClass01 {
	public static void main(String[] args) {
		
		//Generic 클래스를 Apple 로 지정해서 객체 사용하기
		FruitBox<Apple> box1 =new FruitBox<Apple>();
		box1.pack(new Apple());
		Apple a1=box1.unPack();
		
		//Generic 클래스를 Orange로 지정해서 객체 사용하기
		FruitBox<Orange> box2 =new FruitBox<Orange>();
		box2.pack(new Orange());
		Orange o1=box2.unPack();
		
		//Generic 클래스를 Melon으로 지정해서 객체 사용하기
		//객체 생성시에 Generic은 생략 가능하다
		FruitBox<Melon> box3=new FruitBox<>();
		box3.pack(new Melon());
		Melon m1=box3.unPack();		
	}
}

 

 

<15:30 6교시>

package test.main;

import test.mypac.Apple;
import test.mypac.Pear;

public class MainClass02 {
	public static void main(String[] args) {
		
		
		/*
		 * key 값을 어떤 타입으로 설정할지?
		 * value값을 어떤 타입으로 설정할지?
		 * 위 두개를 결정해서 2가지 generic 클래스를 지정해야 함.
		 */
		//우리가 직접 generic 클래스를 쓸 일은 없지만 이미 만들어진걸 적절하게 사용할줄 알아야 한다.
		//Integer라는 포장을 씌워줘야지 int를 쓰면 int가 기본 데이터 타입이라서 에러가 난다.
		Pear<String, Integer> p1= new Pear<>("one", 100);
		String k1=p1.getKey();
		Integer v1=p1.getValue();
		
		Pear<String, Apple> p2= new Pear<>("two", new Apple());
		String k2=p2.getKey();
		Apple v2= p2.getValue();
		
	}
}

 

학원에서 작업한 내용은 바로 github에 등록되는데, 집에서 작업한 내용은 집 환경에도 있지만 깃허브에는 반영되도록 관리되지 않을 수 있는 것은 우클릭에서 Team 메뉴에서 Apply Fetch랑 Share Project 기능 밖에 없는데 Share Project를 눌러서 저장소를 새로 만들거나 해서 git hub에서도 관리될 수 있도록 할 수 있다. 학원에서도 이 폴더를 관리되게 하고 싶다면 폴더를 선택하고 finish 하면 git 저장소로 그 프로젝트가 납치(?)되어 옮겨 간다. 그 폴더는 집에서 만들어졌지만 학원에서 만든것처럼 실행가능하게 되는 것이다.

학원에 있는 git 저장소에서 pull 하면 내가 집에서 작업해서 옮겨간 폴더도 Working Tree로 들어와 있다. 내용을 볼려면 import projects를 진행해야 한다.

 

 

예제 풀어보기

package test.main;

import java.util.ArrayList;

public class MainClass01 {
	public static void main(String[] args) {
		//java에서 배열은 용도가 한정되어 있다. item을 담을 수 있는 공간을 늘리거나 줄일 수 없다.
		
		//문자열(String) type을 담을 수 있는 방 5개 짜리 배열 객체 생성
		String[] names =new String[5];
		names[0]= "name1";
		names[1]= "name2";
		names[2]="name3";
		
		ArrayList<String> friends = new ArrayList<>();
		//이름 3개를 순서대로 담아 보기
		friends.add(0, "name1");
		friends.add(1, "name2");
		friends.add(2, "name3");
		
		//0번방의 아이템을 불러와서 item이라는 변수에 담기
		String item = friends.get(0);
		
		//1번 방의 아이템을 삭제
		friends.remove(1);
		
		//0번 방에 "acorn" 끼워넣기
		friends.add(0, "acorn");
		
		//저장된 아이템의 갯수(size)를 size라는 지역 변수에 담기
		int size = friends.size();
		
		//저장된 모든 아이템 전체 삭제
		friends.removeAll(friends);
		
	}
}

 

 

<16:30 7교시>

객체는 필드와 메소드로 이루어져 있다. 객체를 생성한 이유는?

객체의 기능을 이용해 목적을 달성하기 위해서 객체를 생성한다.

어레이리스트라는 객체를 생성하면 재너릭을 지정하고 객체를 만들어서 배열 리스트를 활용할 수 있다.

 

전시간에 풀은 거거 답 풀이 중인데, 일단 거의 다 맞은거 같은데 흠.

 

아 마지막 하나 틀렸네.

//저장된 모든 아이템 전체 삭제

//friends.removeAll(friends);

friends.clear();

 

이거래.

 

 

 

다음 예제 혼자 풀어본거 : 일단 다 맞았음. 근데 확장  for문의 존재를 잊고 있었음.

package test.main;

import java.util.ArrayList;

public class MainClass02 {
	public static void main(String[] args) {
		//정수를 저장할 수 있는 ArrayList<Integer> 객체를 생성해서 참조값을 지역변수 nums에 담기
		ArrayList<Integer> nums = new ArrayList();
		
		//ArrayList 객체에 10, 20, 30 숫자 3개를 담기
		nums.add(0, 10);
		nums.add(1, 20);
		nums.add(2, 30);
				
		//ArrayList 객체에 저장된 숫자를 for 문을 이용해서 순서대로 콘솔창에 출력하기
		for (int i=0; i<nums.size(); i++) {
			System.out.println(nums.get(i));
		}
		
	}
}

 

 

선생님이랑 한거

저런거 보면 for문 마려워야함 + 확장 for 문 잊지 말기

package test.main;

import java.util.ArrayList;

public class MainClass02 {
	public static void main(String[] args) {
		//정수를 저장할 수 있는 ArrayList<Integer> 객체를 생성해서 참조값을 지역변수 nums에 담기
		ArrayList<Integer> nums = new ArrayList();
		
		//ArrayList 객체에 10, 20, 30 숫자 3개를 담기
		nums.add(10);
		nums.add(20);
		nums.add(30);
				
		//ArrayList 객체에 저장된 숫자를 for 문을 이용해서 순서대로 콘솔창에 출력하기
		for (int i=0; i<nums.size(); i++) { // 자바 스크립트에서 nums.length
			System.out.println(nums.get(i));
		}
		System.out.println("----확장 for 문을 이용하면 ----");
		for (int tmp: nums) {
			System.out.println(tmp);
		}
	}
}

 

 

예제 풀어보기 - 틀림 ㅎ 

for 확장문 안에 int  타입만 써야하는 줄 알고 헛짓거리 하고 있었음..ㅎㅎ

package test.main;

import java.util.ArrayList;

public class MainClass03 {
	public static void main(String[] args) {
		//인삿말을 담을 ArrayList 객체를 생성해서 참조값을 greets라는 지역변수에 대입하기
		ArrayList<String> greets = new ArrayList();
		
		//greets에 들어 있는 참조값을 이용해서 인사말 3개를 임의로 담기
		greets.add(0, "안녕");
		greets.add(1, "반가워");
		greets.add("Hello");
		//확장 for 문을 이용해서 모든 인사말을 콘솔창에 순서대로 출력해보세요
		for (int tmp: greets.get(tmp)) {
			;
			System.out.println(tmp);
		}
		
	}
}

 

 

<17:30 8교시>

예제 답

package test.main;

import java.util.ArrayList;

public class MainClass03 {
	public static void main(String[] args) {
		//인삿말을 담을 ArrayList 객체를 생성해서 참조값을 greets라는 지역변수에 대입하기
		ArrayList<String> greets = new ArrayList<>();
		
		//greets에 들어 있는 참조값을 이용해서 인사말 3개를 임의로 담기
		greets.add(0, "안녕");
		greets.add(1, "반가워");
		greets.add("Hello");
		//확장 for 문을 이용해서 모든 인사말을 콘솔창에 순서대로 출력해보세요
		for (String tmp: greets) {
			System.out.println(tmp);
		}
		
		
	}
}

 

 

 

방금 확장형  for 문으로 호출한 내용과 동일한 결과를 얻을 수 있는 새로운 형태

관련해서 염두에 둘 내용 : 오호라,  Consumer 라는 인터페이스로 객체를 생성해서 보니까 accept 라는 메소드를 하나만 갖고 있네? 그러니까 객체를 생성하는 방법으로 Consumer<String> con = ()->{};  방식으로 생성해도 되겠네? 를 염두에 두고 가자 다음에 계속해주신댔으니. 

package test.main;

import java.util.ArrayList;
import java.util.function.Consumer;

public class MainClass03 {
	public static void main(String[] args) {
		//인삿말을 담을 ArrayList 객체를 생성해서 참조값을 greets라는 지역변수에 대입하기
		ArrayList<String> greets = new ArrayList<>();
		
		//greets에 들어 있는 참조값을 이용해서 인사말 3개를 임의로 담기
		greets.add(0, "안녕");
		greets.add(1, "반가워");
		greets.add("Hello");
		//확장 for 문을 이용해서 모든 인사말을 콘솔창에 순서대로 출력해보세요
		for (String tmp: greets) {
			System.out.println(tmp);
		}
	
		System.out.println("------------");
		
		Consumer<String> con = new Consumer<String>() {
			
			@Override
			public void accept(String t) {
				// TODO Auto-generated method stub
				System.out.println(t);
			}
		};
		greets.forEach(con);
	
	}
}

 

+ Recent posts