2023.03.20 : Java(이클립스 가이드, java.lang의 다양한 메서드)

이준영·2023년 3월 20일
0

모듈(JDK 10버전 이상부터, 우리는 사용 안 함)

여러개의 클래스 관계

패키지 - 안에 여러 개의 클래스 들어가있다.

  • is ~ a - 상속 관계
class A extends ~~ {
 B a = new B();
}
  • has ~ a - 부속 관계(객체 변수)
class A {
 B a = new B();
 }



객체지향(중심 : OOP) 프로그램에 대한 특성


캡슐화 - data 은닉

  • 문법적 구조
    접근 제어자(private, public ... )
    setter(입력)/getter(출력)
    생성자 오버로딩(constructor overloading)
    this ( 필드변수 구별 ) / this() ( 다른 생성자 호출 )


상속성 - A extends B

  • 문법적 구조
    오버라이딩(Method overriding)
    객체형변환(자동형변환)
    super ( 부모에 접근 ) / super( 다른 생성자 호출 )
    final(변수, 메서드, 클래스 별 기능 확인)


다형성



추상화



기본 프로그램에 대한 문법

자료 / 제어 정리




eclipse

압축해제 -> 설치

작업 순서

  1. workspace(작업 공간) 잡아주기 + eclipse 설정
  2. 프로젝트(코딩) 만들기 - 모듈x
  3. 패키지 만들기 - 명시적 / 묵시적(default 패키지)
  4. 클래스 만들기 - (패키지 없이 class 만들면 묵시적)

src - source(소스 파일 만들어지는 곳) / bin - binary(class 만들어지는 곳)
이클립스에서 커스텀 설정하면 .metadata 파일에 들어간다

eclipse 작업

java 파일 1개 당 class 1개가 기본 원칙
ctrl + space 로 자동완성기능

다양한 생성자 기능 자동완성으로 만들기

우클릭 -> source -> 쓰고 싶은 기능 쓰기(ex 참고)

ex>

Generate Constructor using fields (overloading 만들기)



Generate getters and setters ( getter / setter 만들기, select로 각각 개별로 만들기 가능)


override/implement Methods (overriding 생성)

외 다른 기능도 있다.



이클립스로 구구단 출력해보기 (프로젝트의 설계 순서 기억하기!)

  1. 프로젝트 파일 만들기

  1. 프로젝트 안, src에 패키지 파일 만들기

  1. 패키지 안에 class 파일 만들기(실행할 main클래스, 설계도인 Util(ex)class)

  1. Util class에서 작업하기

  1. Main 클래스에서 객체 선언, 생성 후 실행하기


  1. 출력 결과 확인하기




애노테이션(Annotation)

이 경우는 오버라이딩 규칙 맞지 않으면 오류 발생시켜라 라는 정보 컴파일러에게 전달한다.



eclipse에서 String[] arg 사용하고 값 출력해보기

Run as -> Run Configurations -> Arguments -> Program arguments에 인자 적기



주의! 처음에 실행을 시키지 않으면 이전 클래스가 뜨게된다.

이 경우 한 번이라도 실행시킨 후 들어가주면 바뀐다.



프로젝트 가져오기

1.package Explorer에서 우클릭 -> Import -> General -> Existing Projects into Workspace

  1. Browse 눌러서 가져올 폴더(파일) 선택 후 누르면 파일이 가져와진다.




java.lang 패키지

자바 언어에서 가장 기본적이며 자주 사용되는 클래스들의 모임( 이 안에 가장 최상위 클래스는 object이다)


Object의 다양한 메서드


메서드 예의 기준


toString()

객체변수 출력한다는 의미는 객체명.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());

위 그림대로 이것을 출력하면



getClass()

해당 클래스 정보를 얻는다.

ex>

		//클래스 정보를 얻어서(getClass) 클래스 이름을 출력(getName)
		System.out.println(o1.getClass().getName());

hashcode()

해당 객체의 해쉬코드 얻는다.

		//해당 객체의 해쉬코드 출력
		System.out.println(o1.hashCode());
        
		//16진수로 얻어보기
		System.out.printf("%x",o1.hashCode());



equals()




String

문자열 저장 클래스
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);

문자열 길이 : length()

		System.out.println(str1.length());
		System.out.println("Hello String".length());


문자열 -> 문자추출 : charAt()

		//문자열 -> 문자추출
		System.out.println(str1.charAt(0)); //n번쨰 문자열 추출(리턴값 char)
        
		//마지막 문자 추출
		System.out.println(str1.charAt(str1.length()-1));


부분 문자열 추출 : substring()

		//문자열 -> 부분 문자열 추출 (charAt 보다 더 많이 씀)
		System.out.println(str1.substring(2)); // n부터 출력
		System.out.println(str1.substring(2, 4)); //n부터 n-1까지


문자 위치 찾기 : indexOf, lastIndexOf

		// 문자 위치 찾기, 없는 문자는 -1 출력
		System.out.println(str1.indexOf("l")); // 리턴값(int)
		
		//끝에서부터 문자 위치 찾기
		System.out.println(str1.lastIndexOf("l"));


문자열 존재 여부 : startsWith, endsWith, contains

		//문자열 존재 여부( == contains(~를 포함하는지), endsWith(~로 끝나는지)
		System.out.println(str1.startsWith("He"));
        
        --> H 부터 시작하므로 true 출력

문자열 치환 : replace

		//문자열 치환
		System.out.println(str1.replace("Hello", "안녕"));


문자열 결합 : concat ( +로 가능하다)

		//문자열 결합 : + 이지만 메서드로 사용 가능(concat())
		System.out.println(str1.concat(" 안녕"));


문자열 대소문자 : toUpperCase / toLowerCase

		//대소문자
		System.out.println(str1.toUpperCase()); //대문자로 출력
		System.out.println(str1.toLowerCase()); //소문자로 출력

앞 뒤(좌우) 공백제거 : trim

		//공백제거
		String str11 = "             Hello           String     ";
		System.out.println(str11.length());
		String str12 = str11.trim(); // 문자열 좌우 공백 제외(중간x)
		System.out.println(str12.length());


구분자 분리 / 결합 : split(배열로 만듦) / join(문자열로 만듦) 서로 반대

		//구분자 단위 분리(배열로 만듦)
		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);


형식이 있는 문자열 : format (printf와 동일)

		//형식이 있는 문자열 (printf와 동일, 쓴 형식대로 출력해준다.)
		String str31 = String.format("%s-%s-%s", "aaa", "bbb", "ccc");
		System.out.println(str31);





stringBuffer / stringBuilder

String과는 상속 관계가 없다.
버퍼라는 내부 공간을 통해 문자열을 저장하고 수정 / 삭제 / 추가 작업한다.
이 두 클래스의 사용법은 거의 유사하다.
기본 버퍼의 공간(capacity)은 16이다.

선언과, 버퍼크기, 문자열길이 출력



stringBuffer / stringBuilder 메서드

선언


String에서 사용하던 메서드와 거의 유사


그 밖의 메서드(append, insert, delete, replace 등)





Math 메서드

마찬가지로 자바 스크립트와 유사하다.



ceil / floor / round : 올림 / 내림 / 반올림

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));
	}
}


pow(n,m제곱)

System.out.println(Math.pow(10.0, 2.0)); // 10의 2제곱 이라는 뜻 (100.0 출력)

random 함수

		System.out.println((int)(Math.random()*45) + 1); --> (1~45 중 랜덤 하나)


Wrapper 클래스

특정 클래스 말하는 것이 아닌 부류
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);


Wrapper 클래스화 (autoboxing)


형변환과 문자열 - > 정수 / 실수 변환(언박싱)



unboxing(객체에서 빼내는 것)

profile
끄적끄적

0개의 댓글