본문 바로가기

Java/information

[자바/JAVA] API와 String 메소드들

API
application programming interface의 약자로  api의 맥락에서 애플리케이션이라는 단어는 고유한 기능을 가진 소프트웨어를 나타낸다. 인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있는데 이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다. api 문서는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어있다.

 

많은 사람들이 api를 레스토랑의 점원을 빗대어 말하는데 손님(사용자)가 들어오면 점원(api)를 통해 원하는 음식을 주문하고 그것을 주방(프로그램)에 전달하고 원하는 서비스를 제공할 수 있게 도와주는 매개체로 볼 수 있다. 

 

이렇게 api의 장점으로는 사용자가 보기에 어렵지 않게 간소화되고 빠른 프로세스 처리를 가능하게 하고 손님(사용자)은 딱히 관심 없는 정보(필요한 요리 재료, 요리 순서 등)을 알지 않아도 맛있는 식사를 쉽게 할 수 있는 것처럼 어떻게 구현하는지 몰라도 처음부터 개발하거나 유지 보수할 필요가 없는 외부 데이터와 기능에 접속할 수 있게 해준다.

java.lang 패키지
-java.lang 패키지에는 Object라는 클래스가 있는데, Object 클래스는 자바의 최상위 클래스로 우리가 만드는 모든 클래스의 부모 클래스
-클래스를 선언할때 extends Object라고 명시하지 않아도 모든 클래스는 항상 Object 클래스를 부모 클래스로 가짐.

 


java.lang.Oject클래스
equals() 메소드
-Object 클래스에 equals 메소드는 '=='기호와 같음. 즉 인스턴스 참조값을 비교
-equals 메소드가 인스턴스 자체가 같은지 비교하도록 하려면 오버라이팅해서 사용
비교연산자 == 는 두 객체를 비교해서 논리적으로 동등하면 true, 그렇지 않으면 false를 리턴한다. 논리적으로 동등하다는 의미는 기본 데이터의 값, 참조 주소값의 번지가 같은지를 비교하여 데이터가 동일함을 뜻한다.
Object 최상위 객체가 가지고 있는 equals()는 기본타입을 비교할때에는 값 자체를 비교하고 객체를 비교할 때에는 객체의 주소값을 비교한다. 비교연산자 ==와 같은 역할을 하는 것이다. 그러나 String  객체가 가지고 있는 equals()는 가지고 있는 값 자체만 비교한다. 즉 문자열이 같은지만 비교하는 것이다. 왜냐하면 object객체의 equals()를 override해서 사용하고 있다.
원래 equals()메소드는 오브젝트 클래스의 번지 비교 메소드지만, String 클래스가 재정의해서 문자열을 비교하도록 변경하였기 때문에 String 객체의 문자열만 비교하고자 한다면 == 연산자 대신에 equals()메소드를 사용해야 한다!!
System.out.println()메소드의 매개값은 콘솔에 출력할 내용인데 매개값으로 기본타입일 경우 해당값을 그대로 출력하고, 객체를 주면 객체의 toString()메소드를 자동으로 호출하여 리턴값을 받아 출력한다.


java.lang.String
-String 인스턴스 생성하기
1)new 키워드 이용 - 매번 새로운 인스턴스 생성
2)간단하게 쌍따옴표만으로 생성-같은 문자열 공유

 


toString() 메소드
-인스턴스 참조값을 반환.
-인스턴스를 문자열로 바꿈.
-인스턴스 값을 출력하려면 오버라이딩 하면 됨.
객체 문자 정보
Object 클래스의 toString() 메소드는 객체의 문자 정보를 리턴한다. 객체의 문자 정보란 객체를 문자열로 표현한 값을 말한다.
기본적으로 Object 클래스의 toString() 메소드는 '클래스이름@16진수해시코드'로 구성된 문자 정보를 리턴한다.

Object의 toString() 메소드의 리턴값은 자바 애플리케이션에서는 별 값어치가 없는 정보이므로 Object 하위 클래스는 toString() 메소드를 재정의(오버라이딩)하여 간결하고 유익한 정보를 리턴하도록 되어있다.
예를 들어 java.util 패키지의 Date 클래스는 toString() 메소드를 재정의하여 현재 시스템의 날짜와 시간 정보를 리턴한다. 그리고 String 클래스는 toString() 메소드를 재정의해서 저장하고 있는 문자열을 리턴한다.










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

[자바/JAVA] Stream  (0) 2023.05.25
[자바/JAVA] java.util의 여러 클래스들  (0) 2023.05.23
[자바/JAVA] 예외 클래스  (0) 2023.05.17
[자바/JAVA] 익명 객체  (0) 2023.05.15
[자바/JAVA] 중첩클래스  (0) 2023.05.11