모듈(JDK 10버전 이상부터, 우리는 사용 안 함)
패키지 - 안에 여러 개의 클래스 들어가있다.
class A extends ~~ {
B a = new B();
}
class A {
B a = new B();
}
자료 / 제어 정리
압축해제 -> 설치
src - source(소스 파일 만들어지는 곳) / bin - binary(class 만들어지는 곳)
이클립스에서 커스텀 설정하면 .metadata 파일에 들어간다
java 파일 1개 당 class 1개가 기본 원칙
ctrl + space 로 자동완성기능
우클릭 -> source -> 쓰고 싶은 기능 쓰기(ex 참고)
ex>
외 다른 기능도 있다.
이 경우는 오버라이딩 규칙 맞지 않으면 오류 발생시켜라 라는 정보 컴파일러에게 전달한다.
Run as -> Run Configurations -> Arguments -> Program arguments에 인자 적기
이 경우 한 번이라도 실행시킨 후 들어가주면 바뀐다.
1.package Explorer에서 우클릭 -> Import -> General -> Existing Projects into Workspace
자바 언어에서 가장 기본적이며 자주 사용되는 클래스들의 모임( 이 안에 가장 최상위 클래스는 object이다)
메서드 예의 기준
객체변수 출력한다는 의미는 객체명.tostring() 출력하는 거랑 같다.
toString() -> 내용(멤버필드) 출력
override를 전제로 해서 만들어진 메소드이다.
System.out.println(o1);
System.out.println(o1.toString());
보통 override를 해서 쓰인다.
Person p = new Person(100, "홍길동", 20);
//toString() = Object 클래스에서 상속받은 것이다.
System.out.println(p);
System.out.println(p.toString());
위 그림대로 이것을 출력하면
해당 클래스 정보를 얻는다.
ex>
//클래스 정보를 얻어서(getClass) 클래스 이름을 출력(getName)
System.out.println(o1.getClass().getName());
해당 객체의 해쉬코드 얻는다.
//해당 객체의 해쉬코드 출력
System.out.println(o1.hashCode());
//16진수로 얻어보기
System.out.printf("%x",o1.hashCode());
문자열 저장 클래스
String (가장 많이 사용) / StringBuffer / StringBuilder(상급자가 사용?)
문자열 출력 메서드는 자바 스크립트에서의 String 메서드와 거의 유사하다.
String str1 = "Hello String"; -> "" 사용
String str2 = new String("Hello String"); -> 객체 만들어 사용
char charArray[] = {'H', 'e', 'l', 'l', 'o'}; -> 배열 만들고 객체에 대입
String str3 = new String(charArray);
System.out.println(str1.length());
System.out.println("Hello String".length());
//문자열 -> 문자추출
System.out.println(str1.charAt(0)); //n번쨰 문자열 추출(리턴값 char)
//마지막 문자 추출
System.out.println(str1.charAt(str1.length()-1));
//문자열 -> 부분 문자열 추출 (charAt 보다 더 많이 씀)
System.out.println(str1.substring(2)); // n부터 출력
System.out.println(str1.substring(2, 4)); //n부터 n-1까지
// 문자 위치 찾기, 없는 문자는 -1 출력
System.out.println(str1.indexOf("l")); // 리턴값(int)
//끝에서부터 문자 위치 찾기
System.out.println(str1.lastIndexOf("l"));
//문자열 존재 여부( == contains(~를 포함하는지), endsWith(~로 끝나는지)
System.out.println(str1.startsWith("He"));
--> H 부터 시작하므로 true 출력
//문자열 치환
System.out.println(str1.replace("Hello", "안녕"));
//문자열 결합 : + 이지만 메서드로 사용 가능(concat())
System.out.println(str1.concat(" 안녕"));
//대소문자
System.out.println(str1.toUpperCase()); //대문자로 출력
System.out.println(str1.toLowerCase()); //소문자로 출력
//공백제거
String str11 = " Hello String ";
System.out.println(str11.length());
String str12 = str11.trim(); // 문자열 좌우 공백 제외(중간x)
System.out.println(str12.length());
//구분자 단위 분리(배열로 만듦)
String str21 = "apple,banana,pineapple,kiwi";
String strArr[] = str21.split(","); // , 단위로 구분 시키기
for(String str : strArr) {
System.out.println(str);
}
//구분자 단위 결합(문자열로 만들어줌) split과 반대
String str22 = String.join(" ", strArr);
System.out.println(str22);
//형식이 있는 문자열 (printf와 동일, 쓴 형식대로 출력해준다.)
String str31 = String.format("%s-%s-%s", "aaa", "bbb", "ccc");
System.out.println(str31);
String과는 상속 관계가 없다.
버퍼라는 내부 공간을 통해 문자열을 저장하고 수정 / 삭제 / 추가 작업한다.
이 두 클래스의 사용법은 거의 유사하다.
기본 버퍼의 공간(capacity)은 16이다.
선언과, 버퍼크기, 문자열길이 출력
마찬가지로 자바 스크립트와 유사하다.
public class Math1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(Math.ceil(10.3));
System.out.println(Math.ceil(10.5));
System.out.println(Math.ceil(10.7));
System.out.println(Math.floor(10.3));
System.out.println(Math.floor(10.5));
System.out.println(Math.floor(10.7));
System.out.println(Math.round(10.3));
System.out.println(Math.round(10.5));
System.out.println(Math.round(10.7));
}
}
System.out.println(Math.pow(10.0, 2.0)); // 10의 2제곱 이라는 뜻 (100.0 출력)
System.out.println((int)(Math.random()*45) + 1); --> (1~45 중 랜덤 하나)
특정 클래스 말하는 것이 아닌 부류
8종류의 기본형을 객체로 만들기 위한 클래스를 이야기함
기본형마다 그의 상응하는 Wrapper 클래스 존재
기본형은 Object를 상속받지 않아 객체 저장할 수 없는데, 이를 위해 Wrapper 클래스 이용하여 객체로 만들어주는 것이다.
//MAX/MIN_VALUE = 상수
System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);
System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);