이 포스팅은 백기선님이 2020년 11월 진행하신 라이브 스터디과정을 토대로 작성되었습니다. 아래 URL에 들어가시면 다른 분들이 정리하신(그리고 제가 참고한) 자료들이 올라와 있습니다.
https://github.com/whiteship/live-study/issues/5
==========================================================
자바의 Class에 대해 학습하세요.
==========================================================
ex) IceCream.java
public class IceCream {
//1) 필드(멤버 변수) 선언
private String name;
private String flavor;
private String color;
//2) default 생성자, 생략이 가능하지만 파라미터를 가진 생성자가 있을 시 반드시 명시해야 함
public IceCream() {
}
//2) 파라미터를 가진 생성자, 파라미터를 가지고 변수를 초기화
public IceCream(String name, String flavor, String color) {
this.name = name;
this.flavor = flavor;
this.color = color;
}
//3) 메소드: 이름을 가져오는 행위
public String getName() {
//메소드 내부 기능
return name;
}
}
예시에서 IceCream이라는 클래스를 생성한 후, 이 클래스로부터 객체를 만들어 사용한다.
이런 과정을 "인스턴스화" 라고 한다.
ex) main.java
//클래스이름 변수명 = new(키워드) 클래스이름(생성자 호출)
IceCream iceCream = new IceCream(); //기본 생성자
IceCream mintChoco = new IceCream("민트초코", "민트초코맛", "민트색");
IceCream merona = new IceCream("메로나", "메론맛", "초록색");
//클래스 내부에 정의되어 있는 getName이라는 메소드를 호출
mintChoco.getName(); //민트초코
ex) IceCream.java
//메소드 정의하는 방법
/*
접근제어자 리턴타입 메소드명(파라미터) {
//실행할 코드
return 리턴타입; */
public String getFlavor() {
return flavor;
}
메소드는 기본적으로 리턴타입과 메소드 명만 있어도 정의가 가능하다.
public 클래스이름() {
}
- 생성자의 메서드명은 반드시 클래스 이름과 동일해야 한다.
- 생성자 앞에 붙는 접근제어자는 반드시 public 이어야 한다.
- 생성자는 return값을 가지지 않는다.
ex) IceCream.java
public class IceCream {
private String name;
private String flavor;
private String color;
//기본 생성자
public IceCream() {
}
//매개변수를 가진 생성자
public IceCream(String name, String flavor) {
this.name = name;
this.flavor = flavor;
}
//매개변수를 가진 생성자
public IceCream(String name, String flavor, String color) {
this.name = name;
this.flavor = flavor;
this.color = color;
}
public class IceCream {
private String name;
private String flavor;
private String color;
private Company company;
public IceCream() {
//밑에 선언된 생성자를 부른다
this("메로나", new Company("빙그레", "경남공장");
}
public IceCream(String name, Company company) {
this.name = name;
this.company = company;
}
}
어머~~ 땡진맘 덕분에 클래스에 대해 잘 배워가요~~ 호호호~