1. java.lang.Object class
- 모든 class의 최상위 class
- 몇 가지 주요한 method를 제공한다.
- 여기서는
equals()
와 toString()
에 대해 알아보자.
equals()
package test;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
super();
this.name = name;
this.age = 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;
}
@Override
public boolean equals(Object obj) {
Student target = (Student)obj;
boolean result = false;
if(this.getName() == target.getName() && this.getAge() == target.getAge()) {
result = true;
}
return result;
}
}
class MyMain {
public static void main(String[] args) {
Student s1 = new Student("홍길동", 20);
Student s2 = new Student("홍길동", 20);
boolean result = s1 == s2;
System.out.println(result);
System.out.println(s1.equals(s2));
}
}
package test;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
super();
this.name = name;
this.age = 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;
}
@Override
public boolean equals(Object obj) {
Student target = (Student)obj;
boolean result = false;
if(this.getName() == target.getName() && this.getAge() == target.getAge()) {
result = true;
}
return result;
}
@Override
public String toString() {
return this.getName() + " : " + this.getAge();
}
}
class MyMain {
public static void main(String[] args) {
Student s1 = new Student("홍길동", 20);
System.out.println(s1);
}
}
2. String class
- Java는 primitive type으로 총 8개의 데이터 타입을 제공한다.
- 정수형 4개, 실수형 2개, 논리형 1개, 문자 1개
- 자바는 문자는 존재하지만, 문자열은 존재 X
- 자바스크립트 및 파이썬은 문자열은 존재하지만, 문자는 X
- 즉, 문자열은 기본 타입으로 제공되지 않으므로 reference type으로 제공된다. 즉, class로 제공된다.
- 따라서 사용하기 불편하다.
String a = new String("불편불편!!");
String b = "편해편해!!";
String c = "편해편해!!";
String d = new String("불편불편!!");
b= "아이편해";
3. Array
- Java 배열
- 배열은 같은 data type을 여러 개 저장할 수 있는 집합형 자료구조
- 기호는 [ ] 사용
- 저장 순서 존재. index 개념 존재
- 배열은 instance이고, 특수한 형태로 생성을 한다.
int a = 100;
int[] arr = new int[6];
4. ArrayList class
package test;
import java.util.ArrayList;
import java.util.List;
class MyStudent {
}
public class ArrayListTest {
public static void main(String[] args) {
List list = new ArrayList();
list.add("홍길동");
list.add(new MyStudent());
list.add(100);
for(Object obj : list) {
System.out.println(obj.toString());
}
List<String> myList = new ArrayList<String>();
myList.add("홍길동");
myList.add("신사임당");
for(String str : myList) {
System.out.println(str);
}
}
}
5. HashMap class
- key와 value 쌍으로 이루어진 집합형 자료구조
package test;
import java.util.HashMap;
import java.util.Map;
public class HashMapTest {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("1", "안녕하세요!");
map.put("2", "하이하이");
System.out.println(map.get("2"));
}
}
6. HashSet class
- set은 바구니 같은 자료구조
- 저장되는 순서는 없다.
- set은 중복 허용 X
package test;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class HashSetTest {
public static void main(String[] args) {
Set<String> set = new HashSet<String>();
set.add("홍길동");
set.add("신사임당");
set.add("홍길동");
Iterator<String> iter = set.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
}
}