클래스 선언 할 경우,
1) 멤버변수와 메서드가 없어도 클래스 선언 가능
2) 멤버변수와 메서드를 정의하려고 하면 반드시 클래스를 선언.
3) 파일명과 일치하는 클래스에만 public 사용가능
4) 클래스를 사용하려면 인스턴스로 만들어야함.
5) new(생성 연산자) 를 통해 인스턴스를 생성할 수 있다
명명규칙
1)영문 대소 문자와 한글을 사용할 수 있다.
- abc(O),ABC(O),aBc(O),가나다(O)
2)특수 문자는 밑줄(_)과 달러($)표기만 사용이 가능하다.
- $abc(O),_abc(O),ab_c(O),$abc_(O)
3)아라비아 숫자를 사용할 수 있다. 단, 첫 번째 글자로는 사용할 수 없다.
- a3bc(O),ab3c(O),abc3(O),3abc(X)
4)자바에서 사용하는 예약어는 사용할 수 없다.
- int(X),break(X),public(X),static(X) 등등
* 변수명 예시
Camel 표기법
numberSum
스네이크 표기법
number_sum
케밥식 표기법
number-sum
클래스 안에 멤버 변수가 없더라도 사용이 가능하다
멤버변수와 클래스가 없어도 선언은 가능하다
연산 처리 과정
CPU는 메모리에 저장된 명령어를 읽어 들이고, 읽어 들인 명령어를 해석하고, 실행하는 부품으로
메모리는 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품으로
프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 함
CPU(중앙처리장치)에서 연산을 처리하기 위해서
RAM(Random Access Memory)과 ROM(Read Only Memory) (주 기억장치) 에 들어있는 값을
메인 메모리(Main Memory)에 들고와서 복제(Instance)해 담아두고 CPU 로 가져와서 연산을 처리한다
Animal animal1 = new Animal();
Animal animal2 = new Animal();
위와 같이 같은 클래스의 값을 복제하여 담아두는 것을 인스턴스(Instance) 라고함
클래스는 한 파일 안에 여러개의 클래스를 만들 수 있음
파일명이랑 클래스명이 같아야지만 public 으로 선언이 가능함
클래스 선언 하기
class Animal{
int legs;
void Run(){
System.out.println(legs);
}
}
public class MainAnother {
public static void main(String[] args) {
Main main = new Main();
main.done();
Animal animal = new Animal();
animal.legs = 4;
Animal animal2 = new Animal();
animal2.legs = 2;
System.out.println(animal.legs);
System.out.println(animal2.legs);
animal.Run();
animal2.Run();
}
}
패키지
패키지 안에있는 것 끼리 접근이 가능함
외부파일 접근하기
Main.java 에서 p01_class 안에있는 Animal.java를 사용하기 위해서는
Main.java 안에 다음과 같이 선언을 해주어야지 사용이 가능함
import p01_class.Animal;
import p01_class.Animal;
public class Main {
public static void main(String[] args) {
// p01_class.Animal
Animal animal = new Animal();
animal.legs = 4;
Animal animal2 = new Animal();
animal2.legs = 2;
System.out.println(animal.legs);
System.out.println(animal2.legs);
animal.Run();
animal2.Run();
}
}
import 하지 않으면 Run() 함수를 찾을 수 없어서
에러(Error)가 발생한다
클래스 안에는 멤버변수랑 클래스 설계만 가능하다
package p01_class;
public class Animal{
public int legs;
String color;
//클래스 안에는 멤버 변수랑 클래스 설계만 가능
public void Run(){
System.out.println(legs);
}
}
package p01_class;
//클래스는 오직 설계만 가능
public class AnimalEx {
public void done() {
Animal animal = new Animal();
animal.Run();
}
}
클래스 안에서는 설계만 가능하기 때문에
public class AnimalEx {
Animal animal = new Animal();
animal.Run();
}
위와 같은 경우는 클래스안에는 멤버변수와 클래스만 작성 할 수 있기 때문에
Run() 함수를 사용 할 수없다
Main 메소드는 JVM에서 사용되는 것으로
static 이 붙어있어야지 JVM이 찾아서 실행이 가능하다
실행과정에 먼저 담아두고 하나식 실행
클래스를 실행하기 위해서는
Main 메소드에서 인스턴스를 생성해서
클래스를 호출해야한다
메인 메소드에는 실행이되고 안되고는 메인메소드에서 결정된다
static 변수 즉, 명확하게 정의 되어야하는 것들만 사용이 가능함
즉 사용하려는 멤버 변수들은 static 메인 메소드안에 생성자를 만들어주거나
인스턴스(클래스) 변수를 static 으로 만들어줘야함
즉,static 은 static 끼리 인스턴트는 인스턴트끼리 가능함