MemberNoGeneric.java
package genericpkg;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class MemberNoGeneric {
public static void main(String[] args) {
// 제네릭 타입을 이용해 데이터타입을 명시적으로 지정해줌 <Member>
// 이렇게 써주면 list는 Member 객체들을 담을수 있는 동적 리스트가 됨
List<Member> list = new ArrayList<Member>();
Scanner sc = new Scanner(System.in);
for(int i=0; i<3; i++) {
System.out.println((i+1)+"번째 손님 이름입력 > ");
String name = sc.next();
System.out.println((i+1)+"번째 손님 ID 입력 > ");
String id = sc.next();
System.out.println((i+1)+"번째 손님 PW 입력 > ");
String pw = sc.next();
System.out.println((i+1)+"번째 손님 나이 입력 > ");
int age = sc.nextInt();
// 생성자 선언하여 초기화함, 즉 Member 클래스가 필요함
Member member = new Member();
// 입력받은 값들을 set을 통해 값을 세팅해줄 수 있음
member.setName(name);
member.setId(id);
member.setPassword(pw);
member.setAge(age);
// member에서 set을 통해 입력받은 값들을 list에 담아줌(add)
list.add(member);
}
// memberPrint 메서드 호출하여 출력
memberPrint(list);
// 스캐너 닫기
sc.close();
}
// memberPrint 메서드 정의
// 마찬가지로 제네릭 타입이고, List가 Member객체를 담고 있음
public static void memberPrint(List<Member> list) {
for (Member m : list) {
// add하여 list에 넣어줬던 값들을 가져와서 출력해줌
String name = m.getName();
String id = m.getId();
String pw = m.getPassword();
int age = m.getAge();
System.out.printf("name = %s, id = %s, pw = %s, age = %s \n", name, id, pw, age);
}
}
}
생성자가 있었기때문에 Member 클래스를 하나 생성해야한다.
Member.java
package genericpkg;
public class Member {
private String name;
private String id;
private String password;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

BlogNoGeneric.java
package genericpkg;
import java.util.ArrayList;
import java.util.Scanner;
public class BlogNoGeneric {
public static void main(String[] args) {
// Blog 객체를 저장할 배열 생성
Blog[] blogsArray = new Blog[3];
Scanner sc = new Scanner(System.in);
// ArrayList에 Blog 객체 저장
ArrayList<Blog> blogsArrayList = new ArrayList<>();
for (int i = 0; i < 3; i++) {
System.out.println("블로그 정보 입력");
System.out.print("제목 입력 > ");
String title = sc.nextLine();
System.out.print("위치 입력 > ");
String location = sc.nextLine();
System.out.print("공감 수 입력 > ");
int likes = sc.nextInt();
System.out.print("댓글 수 입력 > ");
int comments = sc.nextInt();
sc.nextLine(); // 버퍼 비우기
// 입력 받은 정보로 Blog 객체 생성 후 ArrayList에 추가
blogsArrayList.add(new Blog(title, location, likes, comments));
}
// ArrayList 출력
System.out.println("\nArrayList 출력:");
for (Blog blog : blogsArrayList) {
System.out.printf("%s,[%s], 공감 %d, 댓글 %d\n", blog.getTitle(), blog.getLocation(), blog.getLikes(), blog.getComments());
}
// 스캐너 닫기
sc.close();
}
}
Blog.java
package genericpkg;
public class Blog {
private String title;
private String location;
private int likes;
private int comments;
public Blog(String title, String location, int likes, int comments) {
this.title = title;
this.location = location;
this.likes = likes;
this.comments = comments;
}
public String getTitle() {
return title;
}
public String getLocation() {
return location;
}
public int getLikes() {
return likes;
}
public int getComments() {
return comments;
}
}
