티스토리 뷰

패키지 - 클래스의 카테고리역할
 
 프로젝트 - 외장하드 (여러 파일 ---- 여러개의 폴더로 분류 )
      패키지 -- 여러 클래스
 
 java.lang 패키지의 특징 : import가 필요없는 클래스들의 모임
 
  1. Object
   1) 최상위 클래스


package objectex;
class MyType /*extends object*/{
}
public class ObjectTest {
 
 void a(){
  System.out.println("안녕");
 }
 int b(){
  return 10;
 }
 int c(int a, int b){
  return a+b;
 }
 
 public static void main(String[] args) {
  ObjectTest obj = new ObjectTest();


  obj.a(); // 안녕출력
  System.out.println(obj.b());
  //10 출력 
  int value = obj.b()+obj.b();
  System.out.println(value); //20출력
  

  int value2 = obj.c(10, 20);

  System.out.println(value2);
  //30 출력
  
  System.out.println(obj.c(10, 20));
  //30 출력 
   }

}



   2) toString()

▷ object클래스의 메서드

▷ toString 메서드를 재정의 하지 않을시에는 인스턴스의 주소값이 출력되게 되있으며

▷ getClass().getName() + '@' + Integer.toHexString(hashCode())의 형태

--> 클래스명 + @ + 숫자 조합으로 형성되게 되있다. 


"toString 메소드는 인스턴스의 정보를 문자열의 형태로 반환하기 위한 메소드이다."

-->가급적이면 toString 메소드를 오버라이딩을 해서 인스턴스에 대한 정보를 적절히 표현할 수 있도록 하는 것이 좋다



package objectex;
class MyType /*extends object*/{
}
public class ObjectTest {
 public static void main(String[] args) {


  MyType type = new MyType();
  //type -->새로운 인스턴스 생성
  
  System.out.println(type.toString());
   
  new Person().toString(); //최종 타입은 문자열이됨
  System.out.println(new Person().toString());
  
  Person a =  new Person();
  Person b =  new Person();
  Person c =  new Person();
  System.out.println("a : " + a.toString());
  System.out.println("b : " + b); // toString () 메서드 없이 객체의 정보를 출력해준다
  System.out.println("c : " + c); // toString 의 원 주인은 object 이다 나머지 클래스는 자식이므로 가져다 쓸수 있다.

 }

}
class Person{}




# 메서드의 체인


객체.메서드().메서드().메서드()

getClass().getName() + '@' + Integer.toHexString(hashCode())의 형태


package objectex;
class Car{
}


public class ObjectTest2 {

 public static void main(String[] args) {
  
  Car car = new Car();
  System.out.println(car);
  System.out.println(car.toString());
  
  System.out.println("=============");
  //메서드 체인을 사용하여 toString()를 표현
  
  System.out.println(car.getClass());
  //class objectex.Car 출력
  System.out.println(car.getClass().getName());
  //objectex.Car  출력 ( class 제거 )
  System.out.println(car.getClass().getName()+"@");
  
  System.out.println(car.hashCode());
  //366712642 출력 -->16 진수로 바꿔주어야함
  String toHex = Integer.toHexString(car.hashCode());
  // integer.toHexString 사용

  // ex) integer.parseint("10"); --> 10인 정수로 바꾸어줄수 있음


  System.out.println(car.getClass().getName()+"@"+toHex);
  //objectex.Car@15db9742 출력
  System.out.println(car.getClass().getName()+"@"+toHex.toUpperCase());

  // 대문자로 출력 objectex.Car@15DB9742
 

  System.out.println(car.getClass().getName()+"@"+toHex.toUpperCase().toLowerCase().charAt(0));

  // objectex.Car@1 -> charAt(0) 이 마지막으로 출력 

 

 System.out.println(car.getClass().getName()+"@"+toHex.toUpperCase().toLowerCase().length());

 // length()는 int로 만들어졌기때문에 .을 찍어도 아무것도 나오지않음

 //메서드 체인은 String 으로 끝나야 가능
 }

}


   


'Programing > Java' 카테고리의 다른 글

Java2 -07. 내부클래스 (inner)  (0) 2017.05.17
Java2 - 03. 패키지 Object - Equals  (0) 2017.05.11
Java2 - 01. 예외처리  (0) 2017.05.10
Java1 - 22. 다형성  (0) 2017.05.10
Java1 - 21. 재정의(override)  (0) 2017.05.10
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함