자바 클래스 의 정의 와 실례 화 상세 설명

클래스 정의
대상 을 대상 으로 하 는 프로 그래 밍 에서 클래스 는 우리 가 사용자 정의 한 데이터 형식 으로 볼 수 있다.그러면 어떻게 하면 더욱 아름 답 고 효율적으로 그것 을 정의 할 수 있 는 지가 특히 중요 하 다.
클래스 의 구성원 이 많 습 니 다.모든 부분 이 매우 관건 적 입 니 다.왜냐하면'대상 지향'은 자바 학습 에서 정말 중요 합 니 다.많은 자바 개발 자 들 이 정의 한 클래스 는 우리 가 사용 하 기 를 기다 리 고 있 습 니 다.화 이 팅!정복 하 라!
직접 코드 올 리 기:

package com.my.pac02;
/**
 * @author Summerday
 * @date 2019/11/26 21:40
 */
 //        ,   main  
public class CatTest{
  //    
  public static void main(String[] args) {
    //    
    Cat cat = new Cat();
    //        
    cat.name = "sink";
    cat.isMale = true;
    //        
    cat.sleep();
    cat.jump();
    cat.laughAt("Susan");
    System.out.println(cat.isNotMale());
    //        
    System.out.println(cat);
    //                  
    Cat otherCat = cat;
    System.out.println(otherCat);
    System.out.println(otherCat.name);//"sink"
    // cat            
    cat = null;
  }
}
//    Cat 
class Cat{
  //    
  Cat() {
    System.out.println("cat is cute.");
  }
  //    
  String name;
  int age;
  boolean isMale;
  String color = "Blue";
  //  
  void sleep(){
    System.out.println(name+"is sleeping---");
  }
  public void jump() {
    System.out.println(name+"is jumping---");
  }
  public void laughAt(String otherName)
  {
    System.out.println(name+"is laughing at "+otherName);
  }
  //  boolean     
  boolean isNotMale() {
    return !isMale;
  }
}
간단 한 클래스 정의
[수식 자]class 클래스 이름
{
    (0 개 에서 여러 개)구조 기...
    (0 개 에서 여러 개)구성원 변수(속성)...
    (0 개 에서 여러 개)방법...
}
[수정자]수식 클래스 는 위 코드 의 Public 나 final,abstract 일 수도 있 고 생략 하고 쓰 지 않 을 수도 있 지만 private 와 proctected 를 사용 하 는 것 을 권장 하지 않 습 니 다.
참고:자바 의 외부 클래스 는 왜 private,proctected 를 사용 하여 수식 할 수 없 습 니까?
최상 위 클래스(외부 클래스)에 있어 서 는 두 가지 수정자 만 있 습 니 다:Public 와 기본 값(default).외부 클래스 의 이전 단원 은 가방 이기 때문에 외부 클래스 는 두 개의 역할 영역 만 있 습 니 다.같은 가방,모든 위치 입 니 다.따라서 두 가지 제어 권한 만 필요 합 니 다.패키지 제어 권한 과 공개 접근 권한 은 두 가지 제어 수정자:Public 와 기본(default)에 대응 합 니 다.
클래스 가 private 수식 자 를 사용 했다 면 내부 클래스 임 을 설명 합 니 다.내부 클래스 의 이전 단 계 는 외부 클래스 입 니 다.이에 대응 하 는 네 가지 접근 제어 수정자 가 있 습 니 다.이 클래스(private),같은 가방(default),부자 류(proctected),그 어떠한 위치(Public)입 니 다.내부 클래스 가 private 수식 을 사용 하면 외부 클래스 내부 에서 만 사용 할 수 있 습 니 다.
위 에 있 는 것들 은 모두 평소에 흔히 볼 수 있 는 것 인 데 왜 이런 상황 일 까?
생각해 보 세 요.자바 프로젝트 는 하나의 class 에서 완성 할 수 없습니다.화면 음악 c 모드 에서 클래스 를 3 층,1 층 호출 클래스 로 나 누 었 다.개인 적 이 고 보 호 받 는 것 으로 정의 되면 호출 할 수 없습니다.다시 말 하면 자바 파일 에 대해 서 는 자신 이 단독으로 실행 하거나 다른 프로그램 에 의 해 라 이브 러 리 로 호출 되 거나 자바 파일 의 클래스 가 private 에 의 해 수식 된다 면 다른 프로그램 이나 클래스 가 사용 할 수 없 는 것 이 아 닙 니까?그러면 그 는 단독 파일 로 서 쓸모 가 없습니다.만약 그것 이 하나의 파일 로 실행 된다 면,클래스 로드 는 어떻게 그것 을 찾 을 수 있 습 니까?왜냐하면 외부 에서 볼 수 없 기 때 문 입 니 다.이와 함께 존재 의 미 를 잃 었 다.따라서 클래스 는 Public 와 기본 수정자 만 있 습 니 다.
유형 명 명명 규범:명 지 의 를 보 려 면 여러 개의 의미 있 는 영어 단어 로 구성 되 어야 한 다 는 뜻 입 니 다.모든 단어의 이니셜 을 대문자 로 쓰 고 이런 것 을 규범화 시 키 려 면 지 키 는 것 을 권장 합 니 다!좋 은 습관 을 기르다.
위의 세 가지 구성원(구조 기,구성원 변수,방법)은 모두 0 개 또는 여러 개 를 정의 할 수 있 지만 모두 0 개 로 빈 클래스 가 되 어 의미 가 없다.
구성원 변 수 를 정의 합 니 다.

[   ]          [=   ];
//  
boolean isMale;
String color = "Blue";
구성원 변 수 는 인 스 턴 스 변수 와 클래스 변 수 를 포함 하고 static 수식 의 구성원 변 수 를 클래스 변수 라 고 부 르 며 static 에 대해 자세히 설명 합 니 다.
방법 을 정의 하 다

[   ]          (    )
{
                  ...
}
//  
void sleep(){
System.out.println(name+"is sleeping---");
}
public void jump() {
System.out.println(name+"is jumping---");
}
public void laughAt(String otherName)
{
System.out.println(name+"is laughing at "+otherName);
}
//  boolean     
boolean isNotMale() {
  return !isMale;
}
구조 기 정의

[   ]      (    )
{
  (                   ...
}
//  
//    
Cat() {
  System.out.println("cat is cute.");
}
  • 구조 기 는 구조 류 의 인 스 턴 스,즉 특정한 대상 을 만 들 때 구조 방법 을 자동 으로 호출 한 다음 에 토론 할 것 이다.
  • 구조 기 이름 은 반드시 유형 명 과 같 아야 한다!
  • 구조 기 를 정의 하지 않 으 면 시스템 은 기본 구조 기 를 제공 합 니 다.
  • 디자인 클래스 의 구체 적 인 세부 사항 은 다음 에 일일이 전개 되 고 언급 되 지 않 은 내부 클래스 와 코드 블록 부분 도 있 으 며 그 후에 학습 을 하여 이 세 부분 에서 연 구 를 진행 할 것 이다.
    클래스 의 실례 화
    클래스 구 조 를 통 해 이러한 대상 에 속 하 는 과정 을 클래스 의 예화 라 고 한다.대상 은 구체 적 으로 존재 하 는 사물 이 고 인 스 턴 스 라 고도 부 르 며 클래스 에서 정의 하 는 인 스 턴 스 변수 와 방법 을 호출 할 수 있 습 니 다.(static 수식 변 수 를 고려 하지 않 은 경우)
    생 성 대상 및 사용 대상:
    
    //  Cat    Cat     
    //   Cat     ,  Cat   ,     cat
    Cat cat = new Cat();
    //  cat     name isMale,      
    cat.name = "sink";
    cat.isMale = true;
    //  cat   
    cat.sleep();
    cat.jump();
    cat.laughAt("Susan");
    //  isNotMale()      
    System.out.println(cat.isNotMale());
  • 접근 권한 이 허용 되 는 경우(접근 권한 이 private 등 키워드 와 관련 되 어 있 으 며,잠시 언급 하지 않 음)클래스 에서 정의 하 는 방법 과 구성원 변 수 는 클래스 나 인 스 턴 스 를 통 해 호출 할 수 있 습 니 다.
  • 생 성 대상:형식 인 스 턴 스 이름=new 형식(매개 변수 목록);예 를 들 어 Cat cat=new Cat();
  • 클래스 구성원 변수 나 방법:클래스.클래스 변수 나 클래스.방법 또는 인 스 턴 스.인 스 턴 스 변수 나 인 스 턴 스.방법,클래스 변 수 는 static 키워드 와 관련 되 고 잠시 내 버 려 두 었 다가 다시 돌 이 켜 봅 니 다.
    이렇게 이해 할 수 있 습 니 다.정의 클래스 는 많은 인 스 턴 스 를 만 들 기 위해 서 입 니 다.이 인 스 턴 스 들 은 똑 같은 특징 을 가지 고 있 습 니 다.
  • 대상 을 만 드 는 과정 이 메모리 에서 의 표현
    클래스 는 인용 데이터 형식 입 니 다.즉,스 택 메모리 에 있 는 인용 변 수 는 실제 저장 대상 의 구성원 변수 가 아니 라 인용 입 니 다.실제 구성원 변 수 는 메모리 에 숨 어 있 습 니 다.이 점 은 앞에서 언급 한 배열 형식 과 유사 합 니 다.그리고 스 택 메모리 에 저 장 된 것 은 실제 대상 이 메모리 에 저 장 된 주소 값 으로 인용 변수 cat 의 값 검증 을 직접 인쇄 할 수 있 음 을 알 수 있 습 니 다.
    생 성 대상
    
    //    ,    
    Cat cat = new Cat();

    접근 실례 변수
    
    //      
    cat.name = "sink";
    cat.isMale = true;

    자바 는 메모리 에 있 는 대상 에 직접 접근 할 수 없 으 며,이 대상 의 인용 을 통 해 만 이 대상 을 조작 할 수 있 습 니 다.
    또한 메모리 에 있 는 같은 대상 은 스 택 메모리 에 있 는 여러 인용 변수 가 가리 킬 수 있 습 니 다.예 를 들 면:
    
    //     cat          otherCat
    Cat otherCat = cat;
    이때 cat 와 otherCat 는 스 택 메모리 에서 만 들 어 졌 고 그들 은 원래 cat 가 가리 키 는 메모리 더 미 를 가리 키 기 때문에 같은 실제 대상 을 조작 했다.
    메모리 의 대상 이 변수 가 가리 키 지 않 을 때 한동안'쓰레기'로 자바 의 쓰레기 회수 메커니즘 에 의 해 회수 되 고 대상 이 차지 하 는 메모리 구역 을 방출 합 니 다.
    그래서 미리 풀 어 주 고 인용 변 수 를 null 로 할당 하려 고 합 니 다.
    참고서:<미 친 자바 강의>
    총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기