
자바에서는 static, stack, heap 3가지 영역 카테고리가 존재함
객체에 있는 메소드를 통해서 우리가 원하는 목적을 달성함
그리고 그 객체를 접근할 때는 . 을 통해서 접근함
static은 실체가 존재하는 것
다른 class는 설계도라서 실제 존재하지 않아서 객체를 만들어야 한다.
public class Member {
//필드를 static 혹은 nonstatic로 만들건지 결정
public int num;
public String name;
public String addr;
//기본 생성자
public Member() {}
public Member(int num, String name, String addr) {
//매개 변수에 전달된 값을 필드에 저장하기
this.num =num;
this.name=name;
this.addr=addr;
}
}
본함수에서 생성과 동시에 값을 넣을 수 있음
Member member3= new Member(3,"원숭이","동물원");
클래스랑 생성자의 이름이 같기에 생성자로 객체를 만들고 거기에다가 값 넣기

객체가 만들어지고 그 객체 안의 메소드를 매개변수를 갖고 들어가고 다시 객체로 접근
<질문>
자바에서는 클래스와 메서드의 역할이 명확하게 나눠져 있음
2-1. 클래스
= 설계도
객체의 속성과 행동을 정의함
클래스 자체는 실행되지 않고, 메서드가 호출될때 실행
2-2. 메서드
javascript의 함수와 유사함
메서드는 호출 시 실행, 메서드 내부의 코드가 순차적 실행
메서드를 통해 클래스의 속성을 조작하거나 특정 동작을 수행
자바는 일괄실행이 아닌 모아두었음
public class MainClass03 {
public static void main(String[] args) {
/*
* System 클래스의 in이라는 필드에는 콘솔창으로부터 입력 받을 수 있는
* 객체의 참조값이 들어 있다.
* in의 type은 InputStream 이다.
* Scanner 클래스의 생성자는 아래와 같은 모양의 생성자가 있다.
* Scanner(InputStream is)
* 따라서 아래의 코드는 콘솔창으로 부터 입력받을 수 있는 Scanner 객체가 생성된 것이다.
*/
System.out.println("문자열 입력:");
Scanner scan=new Scanner(System.in);
String line=scan.nextLine();
System.out.println("입력한 문자열 :"+ line);
}
}