본문 바로가기
PROGRAMING📚/Java📑

Java :: 구성- Class 선언 / 패키지 사용하기

Ta이니 2024. 6. 12.
728x90
반응형
클래스 선언 할 경우,
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 로 가져와서 연산을 처리한다

 

 

[컴퓨터 구조] CPU, 메모리, 보조기억장치, 입출력장치를 알아보자

컴퓨터의 핵심 부품은 CPU, 메모리, 보조기억장치, 입출력장치입니다. 이 네 가지 부품의 역할만 이해하고 있어도 컴퓨터의 작동 원리를 대부분 파악할 수 있습니다. 주기억장치에는 크게 RAM과 RO

hongong.hanbit.co.kr

 

    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 끼리 인스턴트는 인스턴트끼리 가능함

 

인스턴스의 정의가 명확하지 않기 때문에 사용 불가능
사용하려는 변수 앞에 static 이 붙으면서 static 함수인 메인메소드에서 사용이 가능함
AnimalEx 라는 인스턴스 클래스안에 animal2 라는 인스턴스의 Run()함수를 가져오고싶다고 명확하게 정의해서 사용이 가능함

728x90
반응형

댓글