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