import java.util.Scanner;
import java.util.StringTokenizer;
class JavaTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.print("문장 입력 : ");
int count = 0;
try {
String words = sc.nextLine();
if (words.trim().toUpperCase().equals("EXIT")) {
// trim() : 처음과 끝의 공백 제거
// toUpperCase() : 문자열을 모두 대문자로
System.out.println("종료");
System.exit(0);
}
StringTokenizer tokens = new StringTokenizer(words, " ");
while (tokens.hasMoreTokens()) {
System.out.println(tokens.nextToken());
count++;
}
System.out.println("단어의 개수 : " + count);
// count = tokens.countTokens();
} catch (Exception e) {
// e.printStackTrace();
System.out.println("잘못된 입력입니다. 프로그램을 처음부터 시작합니다.");
continue;
}
} // end of while
} // end of main
}
class Apple {
@Override
public String toString() {
return "I AM AN APPLE";
}
}
class Orange {
@Override
public String toString() {
return "I AM AN ORANGE";
}
}
class Box {
private Object ob;
public void set(Object o) {
ob = o;
}
public Object get() {
return ob;
}
}
class JavaPractice {
public static void main(String[] args) {
Box aBox = new Box();
Box oBox = new Box();
// 박스에 과일 넣기
aBox.set(new Apple());
oBox.set(new Orange());
// 과일 빼기 : get을 하면 Object가 return되므로, 강제 형 변환을 해줘야 한다.
Apple ap = (Apple) aBox.get();
Orange og = (Orange) oBox.get();
System.out.println(ap);
System.out.println(og);
}
}
[Console]
I AM AN APPLE
I AM AN ORANGE
aBox.set("Apple");
oBox.set("Orange");
Apple ap = (Apple) aBox.get();
Orange og = (Orange) oBox.get();
[Console]
Exception in thread "main" java.lang.ClassCastException: class java.lang.String cannot be cast to class Apple (java.lang.String is in module java.base of loader 'bootstrap'; Apple is in unnamed module of loader 'app')
at JavaPractice.main(JavaPractice.java:37)
aBox.set("Apple");
oBox.set("Orange");
System.out.println(aBox.get());
System.out.println(oBox.get());
class Apple {
@Override
public String toString() {
return "I AM AN APPLE";
}
}
class Orange {
@Override
public String toString() {
return "I AM AN ORANGE";
}
}
class Box<T> {
private T ob;
public void set(T o) {
ob = o;
}
public T get() {
return ob;
}
}
class JavaPractice {
public static void main(String[] args) {
Box<Apple> aBox = new Box<Apple>();
Box<Orange> oBox = new Box<Orange>();
aBox.set(new Apple());
oBox.set(new Orange());
Apple ap = aBox.get();
Orange og = oBox.get();
System.out.println(ap);
System.out.println(og);
}
}
[Console]
I AM AN APPLE
I AM AN ORANGE
Box<Apple> aBox = new Box<>();
class DBox<L, R> {
private L left;
private R right;
public void set(L o, R r) {
left = o;
right = r;
}
@Override
public String toString() {
return left + " & " + right;
}
}
class JavaPractice {
public static void main(String[] args) {
DBox<String, Integer> box = new DBox<String, Integer>();
box.set("Apple", 25);
System.out.println(box);
}
}
[Console]
Apple & 25
class Box<T>{
private T ob;
public void set(T o) {ob = o;}
public T get() {return ob;}
}
class JavaTest {
public static void main(String[] args) {
Box<String> sBox = new Box<>();
sBox.set("I am so happy.");
System.out.println(sBox);
Box<Box<String>> wBox = new Box<>(); // 박스 안의 박스
wBox.set(sBox);
System.out.println(wBox);
Box<Box<Box<String>>> zBox = new Box<>(); // 박스 안의 박스 안의 박스
zBox.set(wBox);
System.out.println(zBox);
System.out.println(zBox.get().get().get());
System.out.println(wBox.get().get());
System.out.println(sBox.get());
} // end of main
}
[Console]
Box@4926097b
Box@762efe5d
Box@5d22bbb7
I am so happy.
I am so happy.
I am so happy.
class Person<L, R>{
private L name;
private R age;
public void set(L name, R age) {
this.name = name;
this.age = age;
}
public String toString() {
return (name + " " + age + "세입니다.");
}
}
class JavaTest {
public static void main(String[] args) {
Person<String, Integer> p = new Person<String, Integer>();
p.set("홍길동", 25);
System.out.println(p);
}
}
[Console]
홍길동 25세입니다.