JAVA 8강_클래스

YEONG EUN LEE (Chloe)·2023년 12월 18일

JAVA 기초

목록 보기
13/42
post-thumbnail

클래스

클래스의 정의

  • 자바에서 데이터를 담기 위한 속성들과 어떠한 명령들을 처리학 위한 기능들의 집합
  • 자바 파일의 최소 단위
    속성들 = 변수, 상수, 객체
    기능들 = 메소드, 생성자, 초기화블럭 ---> 제어문은 메소드와 생성자 안에만 올 수 있음.
  • 조건문, 반복문과 같은 제어문은 클래스 멤버로 올 수 없음.
  • println 과 같은 출력문도 클래스 멤버로 올 수 없음.
  • 대입문(초기화) 하는 것도 클래스의 멤버로 올 수 없음. 대입문은 메소드나 생성자 안에 작성해야 함.

형식

//형식
[접근제어자] class  클래스명 {
	
    // 변수선언
	[접근제어자] [기타제어자] 자료형 변수명;
    
    // 변수선언 및 초기화
    [접근제어자] [기타제어자] 자료형 변수명 = 값;
    
    // 상수선언
     final int MAX = 100; //상수 선언 및 초기화
     int max = 50; // 변수 선언 및 초기화
     
     int[] marr = now int[3];
     String arr = "";
    
    // 초기화 블럭
     static{
     		실행문들;
            
     	} // 초기화 블럭
    [접근제어자] [기타제어자] 리턴타입 메소드명(){
	 실행문들;
     [return 값;]
     }
     
    // 생성자
    [접근제어자] 클래스명 () // 리턴타입을 기술하는 곳이 있냐 없냐

1) 일반 클래스
main 메소드 X
클래스를 만드는 목적은 객체를 생성하기 위해서
public ---> 접근제어자

\[public] class Ex01{ // 클래스 밑에 바로 선언되어 있는 것을 자식으로 존재하는 애들은 점부 멤버로 생각함.
	int a = 5; // 속성(Attribute Property) = 멤버변수, 필드, 컬럼, 인스턴스변수
    public void md( ){// static 넣어도 되고 안 넣어도 됨
    	int b = 6; // 클래스에서 한단계라도 건너띄어서 존재하는 것을 지역이라고 함.
    	System.out.println("md 메소드 출력"); 
	}
}

2) 메인 클래스
main 메소드 O

변수의 종류
기준 : 생명주기

  1. 전역변수
    : 전역에 사용되는 변수
    : 프로그램이 실행되어 선언된 시점에서 프로그램이 종료될때까지 살아있는 변수
    (=멤버변수 : 자동초기화값을 가지고 있음.)
  1. 지역변수
    : 지역 내부 안에서만 살아있는 변수
    (=메소드, 생성자, 반복문, 조건문(제어문), 자동초기화 값이 없음, 배열은 예외)
public calss Ex01{
	int b; // 멤버변수, 전역변수 -> 자동초기화값을 가짐
    
public static void main(String[] args){
	int b = 7; // 전역변수는 한 번 재선언 할 수 있음.
    String b = '가'; // 위에 것이 주석처리 및 삭제 한다면 사용할 수 있음.
    // 지역변수는 각 지역에서 한번씩 선언할 수 있음.
    b = '가'; // 이것도 안됨. 초기화하기 위해서는 선언을 확인해야함.
    
    System.out.println(b); // 바로 위의 변수를 호출
    
	int a = 5; // 지역변수
    System.out.println(a);
    
    int a = 7; // 지역은 똑같은 이름으로 재선언 불가, 동일한 변수명으로 재선언 불가
    String a = 7; // (X)이것도 불가
    System.out.println(a);
    
    md(); // 0 값을 반환(출력) -> 전역변수는 선언만 하면 자동초기화값인 0을 갖기 때문
    // 전역변수는 클래스가 끝날때까지 살아있음.
    }
    
public void md() {
	System.out.println(b); // 전역변수를 호출하는 것
    }
   }

클래스 호출

public class ExClass{ // 복제본을 인스턴스라고 함.
	int a; // 인스턴스 변수라고 함
    
    public void mdA() { // 기능을 수행하기 위해 만든 것
    	System.out.println(a);
        }
        
   public void mod(int a, int b) { // 기능을 수행하기 위해 만든 것
       System.out.println(a%b);
       }
     }

public class ExMain{
	public static void main(String, args){
    	자료형 객체명 = new 자료형();
        ExClass el = new ExClass(); // 객체 형성 및 공간할당;
        // new라는 키워드가 하는 일이 공간할당 + 자바는 원본을 훼손하지 않는다.
        // el = 인스턴스 객체명.
        System.out.println(el.a); // 0으로 반환
        el.mdA();
        
        }
}

자바는 객체 지향 언어(Objected Oriented Programming Language)
객체를 만드는 최소 단위 : class
변수를 만들 때 ---> 자료형 변수명 = 값;

객체 선언 형식 => 주소값 저장.
자료형 참조변수 = 객체명 = 인스턴스명;
자료형 참조변수 = new 자료형명();
자료형성 = 생성자 호출문
클래스급 이상

클래스는 자료형이 클래스명이 자료형이 됨.
참조변수는 마음대로 지을 수 있음.

변수선언 및 값 할당

  • 변수만들 수 있는 자료형: 기본자료형(byte, short, int, long, char, float, double)
    자료형 변수명 = 값;

객체선언 및 공간할당(클래스복제)

  • 객체를 만들 수 있는 자료형: 자바에서 제공해주는 자료형(예: String),
  • 우리가 직접 만든 클래스
    자료형 객체명 = new 자료형();// 자료형 () => 생성자호출문
  • 주소값을 받아오기 위해서는 공간이 필요하다는 의미.
  • 클래스의 이름들이 자료형이 되는 것
  • 객체명은 아무이름으로나 지어주어도 됨.
  • 복제본을 할당받은 공간에 보냄

0개의 댓글