Jam's story
20일차 본문
Car 생성자에 ,
Engine engine=new Engine(); 이렇게 클래스 인스턴스를 만드는것이랑
디폴트 생성자 둘다 결합력이 높은 코딩이어서 안좋다.
유용한 클래스
Object 클래스
- public int hashCode()
객체 자신 해시코드를 반환, 해시코드가 같다면 같은 객체
Value v1=new Value();
int hashCode=v1.hashCode();// 객체 자신 코드 반환
System.out.println(hashCode); //356473385
Value v2=new Value();
int hashCode2=v2.hashCode();// 객체 자신 코드 반환
System.out.println(hashCode2); //2136344592
- Object.toString()
객체 자신의 정보를 문자열로 반환
v1==v1.toString()
Value v1=new Value();
String objectInfo=v1.toString();
System.out.println(objectInfo);
System.out.println(v1.toString());
System.out.println(v1);
//모두다 days20.Value@153f5a29 출력
Alt+Shift+s 에 generate toString() 기능도 있음
- getClass()
객체에 클래스 정보를 담고 있는 class 인스턴스를 가져온다 .
스레드와 관련된 메서드
- void notifyAll()
- void notify()
- void wait()
- eqauls()
오버로딩 예
public void disp(int a) throws IOException 이라면 오버라이딩
공변 반환타입
반환타입을 Object에서 바꾸기
public MyPoint clone() throws CloneNotSupportedException {
Object obj=null;
try {
obj=super.clone();
}catch(CloneNotSupportedException e) {
e.printStackTrace();
}
return (MyPoint)obj;
}
배열복사 System.arraycopy(원배열,시작인덱스, 복사될배열,시작인덱스, 갯수)
Arrays.toString(배열이름)
클래스객체를 얻어오는 방법
- getClass()
- 클래스명.class--static 필드
- 클래스의 forName("full Name") static 메서드
try {
Class cls=Class.forName("days20.Card");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String
String 클래스는 변경불가능한 클래스이다.
String 메소드 정리
equals() | 문자열비교 |
equalsIgnoreCase() | 대소문자 무시하고 문자열 비교 |
null/ " " | 빈문자 |
length | 문자열 길이 |
charAt(int index) | 해당 인덱스에 해당하는 글자 가져옴 |
toUpperCase() | 대문자로 변경- 원본 변경 x |
toLowerCase() | 소문자로 변경 - 원본 변경 x |
substring(a,b) | 시작인덱스와 마지막 인덱스를 넣는다. |
split() | 문자열 자르기 |
split(regex, int limit) | |
toCharArray | String을 Char 배얄로 |
replace(찾을 문자, 바꿀문자 ) | 대체하는것, char형, string형 둘다 가능 |
replaceAll(정규표현식, 바꿀문자 ) | 예) msg.replaceAll("[가-힣]"," " ); |
concat | 문자열 잇기 |
IndexOf(" "int n) | 문자열이 해당하는 인덱스 반환 보통 0부터 찾는데, n부터 찾아라 |
lastIndexOf(" " ,int n ) | 뒤에서 붙어 문자열찾아서 인덱스를 반환해라 |
compareTo() | 같으면 0반환, 문자열의 순서를 알기위해 |
startsWith() | 해당 문자열로 시작하는지 |
endsWith() | 해당문자열로 끝나는지 |
String [] rrns=rrn.split("-");
System.out.println(Arrays.toString(rrns));
char [] msgCharArray=msg.toCharArray();
for(int i=0; i<msgCharArray.length(); i++) {}
concat
String a="abs";
String b="oaky";
String c="3242";
String result=a+b+c;
System.out.println(a.concat(b).concat(c));
두문자열이 같은지 아닌지
equals() ,
comPareTo() -> 같으면 0 반환
문자열의 순서를 알기위해 ,
다르면 음수나 양수 ,
먼저오면 음수
입출력때 다시 구체적으로 한다하심
public class Ex06_05 {
//Reader 와 Writer
public static void main(String[] args) {
String fileName=".\\src\\days20\\SS16교육생명단.txt";
String [] names=new String[20];
try(FileReader in= new FileReader(fileName);
BufferedReader br=new BufferedReader(in);
){
String line=null;
int lineNumber=1;
while((line=br.readLine())!=null) {
System.out.printf("%d:%s\n",lineNumber++, line);
}}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
String result="<ol><li>"+String.join("<li></li>", names)+"</li></ol>";
fileName=".\\src\\days20\\SS16교육생명단.htm";
try(FileWriter out=new FileWriter(fileName);
BufferedWriter bw=new BufferedWriter(out);
){
bw.write(result);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
System.out.println("end");
}
}
Comments