멤버변수 출력 예시
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출력 예시
출력 문제 :
//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만 써도 내가 원하는 값을 생성할 수 있다.