Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

Everything has an expiration date

162 - Java 컬렉션(Collection) : MyData 클래스 타입의 벡터를 생성하여 벡터에 MyData 요소를 저장하고, getter setter를 통해 출력하는 프로그램 (메모장 작성 연습...) 본문

[Java]/review

162 - Java 컬렉션(Collection) : MyData 클래스 타입의 벡터를 생성하여 벡터에 MyData 요소를 저장하고, getter setter를 통해 출력하는 프로그램 (메모장 작성 연습...)

Jelly-fish 2023. 9. 21. 21:48

... 나 왜... get을 썼지...? 정신줄 놓지 말고... 다른 클래스를 제네릭으로 사용한 벡터 원리 잘 이해하자...😢

 

package Review162;

/* ====================================
  ■■■ 컬렉션 (Collection) ■■■
======================================*/

import java.util.Vector;


// 클래스 → 사용자 정의 자료형으로 활용
class MyData
{
	// 주요 속성 구성 → 주요 변수 선언(멤버 변수)
	private String name;		//-- 이름
	private int age;			//-- 나이

	
	public String getName()
	{
		return name;	
	}

	
	public void setName(String name)
	{
		this.name = name;
	}

	public int getAge()
	{
		return age;
	}

	public void setAge(int age)
	{
		this.age = age;
	}

	
	public MyData(String name, int age)
	{
		this.name = name;
		this.age = age;
	}

	
	public MyData()
	{
		//this("", 0);
		name = "";
		age = 0;

	}

	/*
	@Override
	public String toString()
	{
		return name + " " + age;
	}
	*/


	

}


public class Review162
{
	public static void main(String[] args)
	{
		
		// 아미 10세, 캔다 4세, 이싸 3세 벡터에 담기.
		
		Vector<MyData> vt = new Vector<MyData>();
		MyData md = new MyData(); //-- 클래스 인스턴스 생성
		                              //    MyData의 인스턴스 메소드, 인스턴스 변수
		                              //    
		/*
		// Ⅰ. [각각의 MyData 클래스 타입 객체를 생성하여 벡터 vt에 저장하는 방식.]*********

		// 『아미, 10세』
		MyData mydata1 = new MyData();	//-- ① MyData 타입 객체1 생성
		mydata1.setName("아미");			//-- ② setName을 통해 객체1의 name 지정
		mydata1.setAge(10);				//-- ③ setAge를 통해 객체1의 age 지정
		vt.add(mydata1);				//-- ④ 설정을 마쳤다면, vt(벡터)에 요소저장.

		// 『캔다, 4세』
		MyData mydata2 = new MyData();
		mydata2.	setName("캔다");
		mydata2.setAge(4);
		vt.add(mydata2);
		
		// 『이싸, 3세』
		MyData mydata3 = new MyData();
		mydata3.setName("이싸");
		mydata3.setAge(3);
		vt.add(mydata3);
		
		
		
		// Ⅰ. 실행 결과
		for(Object obj : vt)
		{
			System.out.printf("이름 : %s, 나이 : %d\n",
			((MyData)obj).getName(),((MyData)obj).getAge());
		}
		System.out.println();
		//************************************************************************************
		
		

		// Ⅱ. [생성자와, MyData타입 참조변수를 이용하는 방식]*******************************
		MyData mydata1 = new MyData("아미", 10);
		vt.add(mydata1);
		
		MyData mydata2 = new MyData("캔다", 4);
		vt.add(mydata2);
		
		MyData mydata3 = new MyData("이싸", 3);
		vt.add(mydata3);
		

		// Ⅱ. 실행 결과
		for(Object obj : vt)
		{
			System.out.printf("이름 : %s, 나이 : %d\n",
			((MyData)obj).getName(),((MyData)obj).getAge());
		}
		System.out.println();

		//************************************************************************************
		*/	


		// public MyData(String name, int age)
		// {
		// 		this.name = name;
		//		this.age = age;
		// }
	

		// Ⅲ. [생성자만을 이용하는 방식 - 혜성님 방식...]************************************
		
		// add를 써야 하는데 왜 get을 썼니... 
		// 정신이 있니 없니...
		//vt.get(new MyData("아미", 10));
		//vt.get(new MyData("캔다", 4));
		//vt.get(new MyData("이싸", 3));
		
		vt.add(new MyData("아미", 10));
		vt.add(new MyData("캔다", 4));
		vt.add(new MyData("이싸", 3));

		// Ⅱ. 실행 결과
		for(Object obj : vt)
		{
			System.out.printf("이름 : %s, 나이 : %d\n",
			((MyData)obj).getName(),((MyData)obj).getAge());
		}
		System.out.println();
		//************************************************************************************

		
		
		
		


	}
}