JAVA_객체 생성

뚱이아저씨·2023년 1월 30일
0

자바

목록 보기
7/15
post-thumbnail

객체 생성

  • 객체를 생성하는 이유는 필드_멤버변수에 데이터를 저장하기 위해서 이다.
  • 객체를 생성하기 위한 또 다른 이유는 메소드를 쓰기 위해서 이다.

멤버변수

  • 멤버변수는 필드를 뜻하는 것으로 데이터를 찍어 낼때
    각각의 데이터를 담을 수 있는 상자이다.

멤버변수 출력 예시

public class Book{
	String title;
    String author;
    String publisher;
    int page;
    int price;
    String dateOfPublication;
}

내가 놓치고 있던 부분

객체 생성이라는 것은 하나의 클래스에 멤버변수_필드를 정의하고
정의한 멤버변수를 계속해서 찍어내면서 사용할 수 있게끔 하는 것이다.
멤버변수를 찍어내면서 다양하게 재사용하려면 Main 메소드에서
Book b1=new Book();으로 객체를 생성해주고 난 다음 사용할 수 있다.
(클래스 자체를 호출하는 것이라고 생각하면 된다)

메소드 호출과 객체 생성의 차이

//메소드 호출
static void print(String msg){
	System.out.println(msg);
}
//메인 메소드
public static void main(String[] args){
	print("계산결과");
}
//메소드 호출은 만들어진 메소드의 이름으로 메인 메소드에 불러와 호출을 한다.
//객체 생성처럼 new를 사용하지 않는다.

//객체 생성(클래스 호출)
public class Book{
	String bookName;
}

public static void main(String[] args){
	Book b1=new Book();
    
    b1.bookName="오늘밤 세계에서 이사랑이 사라진다 해도";
    
    System.out.println(b1.bookName);
}
//객체 생성은 클래스호출이라고 보면 이해하기 쉽다.
//클래스에 멤버변수를 생성해 찍어낼수 있는 도장의 틀을 만들었다 생각하면 되고
//메인 메소드에서 new로 사용할 수 있는 객체를 생성(클래스호출)해서
//b1.bookName으로 멤버변수의 값을 저장해주고 계속해서 멤버 변수를 찍어낼 수 있는 기능을 한다.

객체 생성을 하면 메소드도 객체 생성 호출할때 처럼 호출 할 수있다.

위 글에 대한 예시

public class Circle{
	//멤버변수_필드->객체의 속성(해당 데이터를 저장)
	int radius;
    String name;
    
    //멤버함수_메소드 - 객체의 기능 담당
    double getArea(){
    	double area=radius*radius*3.14;
        return area;
    }
}
//---------------------------------------------------
public class CircleTest{
	public static void main(String[] args){
    	Circle mirror=new Circle();
        
        //객체 활용 - 객체 멤버에 접근(.)
        mirror.radius=10;
        mirror.name="손거울";
        
        //밑에 코드 처럼 객체 생성 후 메소드를 호출 할 수 잇다.
        double mirrorarea=mirror.getArea();
    }
}

toString 메소드

  • toString메소드는 원래 주소의 값인(@123244232)
    나와야 하는 값을 문자욜로 변경해서 출력한다.

toString출력 예시

출력 문제 :

  • Person클래스를 생성해, toString메소드를 이용하여
  • 실행용 클래스에 person객체를 생성하고
  • 해당 객체의 이름과 나이를 출력하세요
//person클래스 생성
public class Person{
	String name;
	int age;

	//toString메소드 사용
	public String toString(){
		//String.format은 System.out.printf와 같은 역할을 한다.
		return String.format("%s의 나이는 %d세 입니다.", name, age);
	}
}

//person클래스 사용
public class PersonTest{
	public static void main(String[] args){
		Person person=new Person();
		person.name="뚱이아저씨";
		person.age=6;
		//toString메소드 사용
		System.out.println(person.toString());
		
		//원래 객체의 이름인 person만 사용하면 주소값만 나오게 되는데,
		//toString을 사용하면 내가 원하는 값인 결과값으로 출력할 수 있다.
		//toString은 생략이 가능하다.
		System.out.println(person);
	}
}

결과 값 :
값 : 뚱이아저씨의 나이는 6세 입니다.

결국 객체의 이름인 person만 써도 내가 원하는 값을 생성할 수 있다.

profile
뚱이아빠의 개발자도전기

0개의 댓글