자바의 static과 생성자,setter & getter

두부링·2024년 12월 16일

java

목록 보기
3/13

복습

  1. 객체를 사용하는 이유?
    필드에 어떤 값을 넣거나 메소드 이용하기 위해서
  2. 객체. : 참조값을 찾아서 필드나 메소드에 접근함
    클래스명에 . 이냐 참조값의 .이냐는 구분
  3. 자바에서는 메소드는 호출만 가능한다. 그러므로 무조건 뒤에 ()가 있어야 한다.
  4. static 영역 안의 class안에는 static 필드와 static메소드로 이뤄져 있음
  5. 모든 객체를 new 하지는 않음, static은 진짜로 존재하기에 접근 가능함
  6. static은 클래스명에 . 찍어서 접근 가능함
  7. this는 생략 가능함

자바에서는 static, stack, heap 3가지 영역 카테고리가 존재함
객체에 있는 메소드를 통해서 우리가 원하는 목적을 달성함
그리고 그 객체를 접근할 때는 . 을 통해서 접근함

자바 기초 문법

static

  1. static 안에서는 static 자원만 사용 가능함(동등한 레벨)
  2. static 와 nonstatic에서 어떤 걸 사용할지 정하기
  3. this는 heap 영역에서 가능함

    static은 실체가 존재하는 것
    다른 class는 설계도라서 실제 존재하지 않아서 객체를 만들어야 한다.

생성자 (Constructor)

  1. method가 아니다 이유는 return type이 명시 되지 않았음
  2. 생성자로 리턴 타입이 없으면서 class 랑 이름이 동일함
  3. 생성자를 하나라도 만들면 기본 생성자는 사라짐
  4. 생성자 다중정의(overloading)
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,"원숭이","동물원");

클래스랑 생성자의 이름이 같기에 생성자로 객체를 만들고 거기에다가 값 넣기

void

  • 아무 것도 턴하지 않는다

return에 계속 this가 나온다면?

객체가 만들어지고 그 객체 안의 메소드를 매개변수를 갖고 들어가고 다시 객체로 접근

setter ,getter

  • private 멤버는 상속되지 않으며, getter/ setter메소드를 통해 접근해야 한다.
  • setter : 값을 넣어줌
  • getter : 값을 가져옴
  • set get + ctrl + space

<질문>

<헷갈>

자바스크립트와 자바

  1. 자바스크립트
  2. 자바
  • 자바에서는 클래스와 메서드의 역할이 명확하게 나눠져 있음
    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);
		
	
	}
}
profile
하이하잉

0개의 댓글