Develop/JAVA

0530 JAVA 열번째!!

포페PostFace 2022. 6. 1. 22:21

상속받는 자식 클래스의 메서드의 접근 범위는
부모의 접근 범위와 같거나 크게 설정할 수 있다.
(작게는 안된다.)

InstanceInner
어떠한 클래스를 한 클래스에서만 사용하게 된다면
클래스 안에 클래스를 정의함으로써 내부클래스
형태로 만들어준다.

외부에는 불필요한 클래스를 감춤으로 코드의 복잡성을
줄일 수 있다.(다른 클래스에서 사용할 수 없다.)

local class
지역 클래스 외부 클래스의 메서드나 초기화블럭 안에
선언한다.

익명 클래스
1회용 클래스

new Inner1() {
	void display(){
		System.out.println("x:"+x*x*x);
	}//display
}.display();


객체를 생성함과 동시에 정의되어있는 메서드를
재정의하고 호출까지 동시에 한다.

인터페이스도 익명 클래스로 객체를 생성할 수 있다.

모든 클래스는 상속을 쓰지 않아도
Object라는 클래스를 상속받고 있다.
Object는 모든 클래스의 최고 조상 클래스다.

String toString( ): 주소를 리턴

만약 메서드명을 toString으로 설정하면
객체명.toString을 하지 않아도(참조변수만 써도)
호출된다.
조건:public String toString( )의 형태여야하며
toString의 S는 대문자여야한다.

boolean equals( ) : 주소 비교한 결과 리턴

String

String str1="Nice day";
String str2="Nice day";
System.out.println(str1 == str2); //true



Nice day라는 문자열이 str1에서 만들어졌기 때문에
str2를 변수설정해도 새로이 만들지 않고
주소를 같이 쓴다.

String str1=new String("Nice day");
String str2=new String("Nice day");
System.out.println(str1 == str2); //false



new 를 통해 새로운 공간에 할당되었기 때문에
서로 다른 공간에 있다.

str1.equals(str2) // true
Object의 equals가 아닌 String의 equals로
오버라이딩 되어있으며
문자의 주소가 아닌 문자 그 자체를 비교해서
참으로 나온다.

a.equalsIgnoreCase(b) 대소문자 구분 없이 문자열이 
같은지 비교한다.

a.toUpperCase( ) 문자열을 전부 대문자로 변환한다.
a.toLowerCase( ) 전부 소문자로 변환한다.

String 변수 + String 변수: 둘을 붙여서 출력

a.concat(b) : 문자열 +문자열과 같이 둘을
연결해주는 메소드다.

a.indexOf("a'"):문자열안에 특정 문자가 몇번째부터
시작하는지 위치를 찾는 메소드.(0부터 시작한다.)
찾는 단어가 없으면 -1로 나온다.

a.charAt(int) : 특정 숫자 번째에 있는 문자를 
찾는 메소드

a.substring(int1,int2) :첫번째 숫자번째부터
두번째 숫자번째 앞까지만 구하는 메소드.

a.substring(int1) : 숫자번째부터 끝까지 구하는 메소드.

a.replace(chr1,chr2) : 모든 chr1을 chr2로 대체하는 메소드.

a.trim( ); : 첫글자 앞과 마지막 글자 뒤의 공백을 제거해주는 메소드.

a.contains("String or chr") : 값을 포함하고 있는지 확인
해주는 메소드.

a.compareTo(b) : 둘을 아스키코드로 전환하여 값이
같은지 확인한다. 같으면 0 같지않으면 0이 아닌 정수가
도출된다.

Wrapper class

int a=10; 처럼 
Integer it1=new Integer(11); 로 객체를 만들어
정수를 담을 수 있는 클래스다.
어떠한 기본 데이터를 객체로 만들어야만 할 때 사용한다.
double은 Double 클래스로 만들어 사용한다.
기본 자료형은 전부 적용 가능하다.
int,double,long,short,boolean,char,byte,float
첫글자를 대문자로 만들고 풀네임을 적는다.

autoboxing

Integer it1=new Integer(11); 는
Integer it1=11;로 축약이 가능한데 이는 
 new Integer(11)이 11로 autoboxing이라고 한다.
반대는 unboxing이라고 한다.

int x =Integer.parseInt("100");
int y =Integer.parseInt("200");
System.out.println(x+y);
Integer t= Integer.valueOf("100");
Integer u= Integer.valueOf("200");
System.out.println(t+u);


위와 같은 경우 Wrapper클래스의 활용법인데
parseInt는 문자열타입을 정수타입으로 전환해준다.
valueOf는 Integer타입으로 변환해준다.
Wrapper클래스를 사용하지 않았다면 결과는
100200이 나왔을것이다.

'Develop > JAVA' 카테고리의 다른 글

0602 JAVA 열두번째~  (0) 2022.06.02
0531 JAVA 열한번째  (0) 2022.06.01
0527 JAVA 아홉번째  (0) 2022.06.01
0526 JAVA 여덟번째  (0) 2022.06.01
0525 JAVA 일곱번째  (0) 2022.06.01