CLASS LECTURE WITH SK TUTOR

2024. 8. 25. 02:32■ JAVA REVIEW & PRACTICE/INDIVISUAL

public: 접근제어자 중 공개적인 아이


static: 자바 프로그램을 run 하는 순간 메모리에 무조건 올라가 

static 이기 때문에 메모리에 올라가 run을 하면 사용을 할 수 있는 것

static은 한번 할당되면 영원히 할당됨 = 정적 = 정적변수 = 
ex) static String name; -> 정적변수 


void: 매서드인데 리턴해주는게 없는 반환타입


메모리 = 사용 = 작업대

컴퓨터에서 무언가 실행할 때 무조건 메모리에 올라가야만 우리가 사용할 수 있음 

생성자 = 생성하는 아이

아래에 써논거대로 안하면 너 못만들어 라고 강제성이 있음 -> 생성하면 메모리에 올라감 




클래스 =  메모리에 안올라간 아이콘 같은거  = 설계도

클래스 스코프에는 그냥 무조건 private 하기 

 


클래스에 만들어 놓은 것을 호출하는 법 : 


1. Student 클래스를 메모리에 올리는 방법

Public static void main(String[] args) {
Student student = new Student();

// student 이름의 Student 클래스를 new 새로 만듬 -> 우리가 이제 얘를 사용할거니 = 메모리에 올렸다 
Student.study(); -> 메모리에 올라갔으므로 드디어 study를 사용할 수 있음
}


2. study 메서드 자체를 메모리에 올리는 방법 
Student.study2(); -> 스터디 메서드 자체를 메모리(스태틱)에 올리는 방법




Private final String name;

-> 요즘 자바를 개발함에 있어서 pirvate 무조건 클래스 스코프 변수에 붙임

-> 이것을 캡슐화 한다고 말함

-> 외부에서 접근 불가능

-> 변수를 클래스 안에 가둠

 



final = 상수 = 불변

한번 값이 떨어지면 절대 바꿀 수 없음

메인 변수가 생성자에서 변수의 값이 할당이 되었는데 

클래스 이름에 회색이 노란줄 있으면 -? 

너 이거 클래스 변수로 굳이 해야돼? 

로컬 변수로 빼면 안돼? 

너 이거 변경 안하네? 

그럼 final이 좋을걸 ? 라는 뜻 



게터세터는 private 에서 연장화된거

-> 너 도대체 이름이 뭐냐 
private 에 접근을 못하니까 public에 게터세터를 만들어줘서 접근하려고 
get -> 접근 / set -> 이름 바꿔주기 : field에 있는 이름 바꿔줌

 

 

 

this 키워드는 현재 객체 자신을 참조
-> 변수 이름이 같을 때 구분하려고

 



매개변수 = field 변수가 같을 때가 있는데 컴파일 오류가 안나기 위해 필드에 넣겠다라는 뜻으로 씀 


 

public class Animal { // class = 설계도 = 종이= 아무것도 아님 그냥 틀 = 사용은 불가능 
	
	public stati void main(String[] args){
		
		Animal dog = new Animal("멍멍이"); // 메모리에 올라감
		rabbit.walk(); // 메모리에 올라가쓰므로 드디어 우리는 walk 를 할 수가 있게 됨. // Animal.walk(); 이건 이렇게 쓸 수 없음 
		
		Animal cat = new Animal("야옹이");
		dog.walk();

		// Animal.eat(); // 대문자 Animal 은 설계도에 불가함 = 종이짝 -> 근데 종이가 먹어? 그러니 말도 안됨 
		// 교훈: 우리가 진짜 의도해서 static을 직접 코드로 쓰지 않고 뭔가 인텔리제이에서 시키는 데로 클릭해서 static이 되어서 사용하고 있는건 90%이상 틀린것.
		System.out.println(dog.name);
		System.out.println(cat.name);

	}
}




public class Animal { // class = 설계도 = 종이= 아무것도 아님 그냥 틀 = 사용은 불가능 
	
	private String name; //private: 접근 제어자

	public Animal(String name) {
		this.name = name; -> 여기서 this 는 클래스의 이름 말하는거 

	}

	public void walk(){
		System.out.println("걷는다.")
	}
}