[Java] 클래스와 객체

zizi·2023년 5월 1일
0

Java

목록 보기
7/27

클래스 선언

  • 자바는 객체를 만들기 위해 반드시 클래스를 먼저 만들어야 한다.
  • 클래스는 객체를 만들기 위한 일종의 틀이다.
    - 붕어빵이 객체라면, 붕어빵 틀은 클래스
  • 자동차 클래스 생성
    public class Car{
    
    }
  • Car.java란 파일을 만든다.
  • 저장을 하면 이클립스는 컴파일하여 디스크에 Car라는 클래스를 생성한다.
  • 자동차 클래스가 생성되었다고 해서 자동차가 만들어 진것은 아니다.

  • Car객체 생성하기 (자동차 만들기)
    public class CarExam{
        public static void main(String args[]){
            Car c1 = new Car();
            Car c2 = new Car();
            // Car라는 객체(붕어빵)가 2개 만들어지고 객체를 참조하는 c1,c2 변수가 선언됨.
        }
    }
  • new 연산자는 new연산자 뒤에 나오는 생성자를 이용하여 메모리에 객체를 만들라는 명령.
  • 메모리에 만들어진 객체를 인스턴스(instance)라고도 한다.
  • 이렇게 만들어진 객체를 참조하는 변수가 c1 , c2 이다.
  • 위의 코드가 실행되면 Car라는 객체가 2개가 만들어지고 각각의 객체를 참조하는 c1과 c2변수가 선언된다.

참조 타입

  • 자바의 변수 타입
    • 기본형 타입 : 논리형, 문자형,정수형, 실수형
    • 참조형 타입 : 기본형 타입을 제외한 모든 타입. ex) 배열, 클래스

String str = new String("Hello");
  • str 변수 앞에 기본형 타입이 아닌 String클래스가 적혀있다.
  • 이퀄(=)뒤에는 new 다음에 생성자라는 것이 있다.
  • new 라는 키워드는 객체를 메모리에 올려준다. 이렇게 메모리에 올라간 객체를 인스턴스라고 말한다.

String 클래스

  • 문자열을 표현하는 자바에서 가장 많이 사용하는 클래스

자바 인스턴스 생성 방법

  1. new연산자를 이용하지 않고 인스턴스를 만드는 경우
    String str1 = "hello";
    String str2 = "hello";
  • "hello"라는 문자열이 메모리 중에서 상수가 저장되는 영역에 저장된다.
  • String str2 = "hello"; 이 문장이 실행될 때에 hello 라는 문자열 상수는 이미 만들어져 있으므로 str1이 참조하는 인스턴스를 str2도 참조한다.

  1. new연산자를 이용해서 인스턴스를 만드는 경우
    String str3 = new String("hello");
    String str4 = new String("hello");
  • new연산자를 이용하여 인스턴스를 만들면 인스턴스는 무조건 새롭게 만들어진다.
  • String str4 = new String("hello"); 이 문장이 실행될때도 새롭게 만들게 되므로, str3 과 str4는 서로 다른 인스턴스를 참조한다.

  • String은 다른 클래스와 다르게 new를 사용하지 않고 사용할 수 있다.
  • 메모리를 아끼려면 String은 new를 사용하지 않고 사용하는 것이 좋다.
  • String은 불변 클래스이다. 불변이란 String이 인스턴스가 될때 가지고 있던 값을 나중에 수정할 수 없다.
  • String은 문자열과 관련된 다양한 메소드를 가지고 있다. 메소드를 호출한다 하더라도 String은 내부의 값이 변하지 않는다.
  • String이 가지고 있는 메소드중 String을 반환하는 메소드는 모두 새로운 String을 생성해서 반환한다.

substring

: 문자열 자른 결과값을 반환하는 메서드

    String str5 = "hello world";
    String str6 = str5.substring(3);

두 문자열을 비교할 때, == 연산자를 이용.
== 연산자는 문자열 변수를 비교할 때 변수의 레퍼런스를 비교한다.

두 문자열이 같은 값인지는 equals 메서드를 사용한다.

  • equal 메서드 예)
public class StringExam {
    public static void main(String[] args) {
        String str1 = new String("Hello world");
        String str2 = new String("Hello world");
        
        if( str1.equals(str2) ){
            System.out.println("str1과 str2는 같은 값을 가지고 있습니다.");
        }
        else{
            System.out.println("str1과 str2는 다른 값을 가지고 있습니다.");
        }
    }
}
profile
좋았다면 추억이고 나빴다면 경험이다.🍀

0개의 댓글

관련 채용 정보