Jam's story

20일차 본문

Java

20일차

애플쩀 2022. 3. 17. 16:53

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()

obj가 MyPoint 객체라면, 다운캐스팅을 함

 

오버로딩 예 

이것은 오버로딩 , 함수명은 똑같고 매개변수 갯수가 다름 

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

'Java' 카테고리의 다른 글

21일차  (0) 2022.03.18
21일차 시험  (0) 2022.03.18
19일차  (0) 2022.03.16
18일차  (0) 2022.03.15
17일차  (0) 2022.03.14
Comments