자바 클래스 의 정의 와 실례 화 상세 설명
대상 을 대상 으로 하 는 프로 그래 밍 에서 클래스 는 우리 가 사용자 정의 한 데이터 형식 으로 볼 수 있다.그러면 어떻게 하면 더욱 아름 답 고 효율적으로 그것 을 정의 할 수 있 는 지가 특히 중요 하 다.
클래스 의 구성원 이 많 습 니 다.모든 부분 이 매우 관건 적 입 니 다.왜냐하면'대상 지향'은 자바 학습 에서 정말 중요 합 니 다.많은 자바 개발 자 들 이 정의 한 클래스 는 우리 가 사용 하 기 를 기다 리 고 있 습 니 다.화 이 팅!정복 하 라!
직접 코드 올 리 기:
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());
이렇게 이해 할 수 있 습 니 다.정의 클래스 는 많은 인 스 턴 스 를 만 들 기 위해 서 입 니 다.이 인 스 턴 스 들 은 똑 같은 특징 을 가지 고 있 습 니 다.
클래스 는 인용 데이터 형식 입 니 다.즉,스 택 메모리 에 있 는 인용 변 수 는 실제 저장 대상 의 구성원 변수 가 아니 라 인용 입 니 다.실제 구성원 변 수 는 메모리 에 숨 어 있 습 니 다.이 점 은 앞에서 언급 한 배열 형식 과 유사 합 니 다.그리고 스 택 메모리 에 저 장 된 것 은 실제 대상 이 메모리 에 저 장 된 주소 값 으로 인용 변수 cat 의 값 검증 을 직접 인쇄 할 수 있 음 을 알 수 있 습 니 다.
생 성 대상
// ,
Cat cat = new Cat();
접근 실례 변수
//
cat.name = "sink";
cat.isMale = true;
자바 는 메모리 에 있 는 대상 에 직접 접근 할 수 없 으 며,이 대상 의 인용 을 통 해 만 이 대상 을 조작 할 수 있 습 니 다.
또한 메모리 에 있 는 같은 대상 은 스 택 메모리 에 있 는 여러 인용 변수 가 가리 킬 수 있 습 니 다.예 를 들 면:
// cat otherCat
Cat otherCat = cat;
이때 cat 와 otherCat 는 스 택 메모리 에서 만 들 어 졌 고 그들 은 원래 cat 가 가리 키 는 메모리 더 미 를 가리 키 기 때문에 같은 실제 대상 을 조작 했다.메모리 의 대상 이 변수 가 가리 키 지 않 을 때 한동안'쓰레기'로 자바 의 쓰레기 회수 메커니즘 에 의 해 회수 되 고 대상 이 차지 하 는 메모리 구역 을 방출 합 니 다.
그래서 미리 풀 어 주 고 인용 변 수 를 null 로 할당 하려 고 합 니 다.
참고서:<미 친 자바 강의>
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.