제1장 유형 과 방법 소개
이해 류 의 가장 중요 한 것 은 새로운 데이터 형식 을 정의 하 는 것 이다.정의 되면 이 새로운 형식 으로 대상 을 만 들 수 있 습 니 다. 따라서 클래스 는 대상 의 템 플 릿 이 고 대상 은 클래스 의 인 스 턴 스 입 니 다. 대상 은 클래스 의 인 스 턴 스 이기 때 문 입 니 다.
클래스 는 사용자 정의 추상 적 인 데이터 유형 으로 특정한 유형의 사물 의 통칭 으로 상상 할 수 있다. 예 를 들 어 소장, 샤 오리, 조 군 은 모두 학생 이다. 그러면 도대체 학생 은 무엇 일 까? 우 리 는 상상 할 수 있다. 학생 들 은 이름, 나이, 반, 학습 성적 을 가지 고 학교 에 가 야 하고 학교 가 파 하고 숙제 를 해 야 하 는 추상 적 인 사물 의 통칭 이다.
대상 을 대상 으로 하 는 사상 은 현실 세계 에서 객관 적 인 사물 을 속성 과 행 위 를 가 진 대상 으로 묘사 하고 같은 대상 의 공동 속성 과 행 위 를 추상 화하 여 유형 을 형성한다.
예 를 들 어 학생 들 은 이름, 성별, 나이, 국어 성적, 수학 성적, 영어 성적 등 특징 이 있 습 니 다. 그러면 우 리 는 절차 에서 이런 특징 을 어떻게 표시 합 니까? 장 군, 샤 오리, 조 군 이라는 세 학생 은 어떻게 표시 합 니까?
//예시 1: (StudentDemo01. java):
class Student
{
String stdName; //
String stdSex; //
int stdAge; //
double chineseMark; //
double mathMark; //
double englishMark; //
}
class StudentDemo01
{
public static void main(String[] args)
{
//
//Student stdZhang = new Student();
Student stdZhang;
stdZhang = new Student();
//
stdZhang.stdName = " ";
stdZhang.stdSex = " ";
stdZhang.stdAge = 20;
stdZhang.chineseMark = 98;
stdZhang.mathMark = 99;
stdZhang.englishMark = 100;
System.out.println(" ");
System.out.println(" :" + stdZhang.stdName);
System.out.println(" :" + stdZhang.stdSex);
System.out.println(" :" + stdZhang.stdAge);
System.out.println(" :" + stdZhang.chineseMark);
System.out.println(" :" + stdZhang.mathMark);
System.out.println(" :" + stdZhang.englishMark);
System.out.println();
//
//Student stdLi = new Student();
Student stdLi;
stdLi = new Student();
//
stdLi.stdName = " ";
stdLi.stdSex = " ";
stdLi.stdAge = 18;
stdLi.chineseMark = 88;
stdLi.mathMark = 89;
stdLi.englishMark = 90;
System.out.println(" ");
System.out.println(" :" + stdLi.stdName);
System.out.println(" :" + stdLi.stdSex);
System.out.println(" :" + stdLi.stdAge);
System.out.println(" :" + stdLi.chineseMark);
System.out.println(" :" + stdLi.mathMark);
System.out.println(" :" + stdLi.englishMark);
System.out.println();
//
//Student stdZhao = new Student();
Student stdZhao;
stdZhao = new Student();
//
stdZhao.stdName = " ";
stdZhao.stdSex = " ";
stdZhao.stdAge = 22;
stdZhao.chineseMark = 78;
stdZhao.mathMark = 79;
stdZhao.englishMark = 70;
System.out.println(" ");
System.out.println(" :" + stdZhao.stdName);
System.out.println(" :" + stdZhao.stdSex);
System.out.println(" :" + stdZhao.stdAge);
System.out.println(" :" + stdZhao.chineseMark);
System.out.println(" :" + stdZhao.mathMark);
System.out.println(" :" + stdZhao.englishMark);
System.out.println();
}
}
클 라 스 키 워드 를 사용 하려 는 성명 류 를 볼 수 있 습 니 다. 클 라 스 에서 정 의 된 데이터 나 변 수 를 구성원 변수 라 고 합 니 다.
내 가 여기에 두 개의 클 라 스 를 한 파일 에 쓴 것 을 볼 수 있다.
하 나 는 Student 류 이 고 추상 적 인 데이터 모델 류 입 니 다.
하 나 는 Student Demo 01 입 니 다. 프로그램 실행 클래스 입 니 다.
2: 생 성 대상
1. 클래스 를 만 들 때 새로운 데이터 형식 을 만 들 었 습 니 다. 이 형식 으로 대상 을 설명 할 수 있 습 니 다. 실제로 클래스 를 가 져 오 는 대상 은 두 단계 로 나 뉘 는 과정 입 니 다.
우선, 이 유형의 인용 을 설명해 야 합 니 다. 이 인용 은 대상 을 정의 하지 않 습 니 다. 대상 을 인용 할 수 있 는 인용 일 뿐 입 니 다. 그 다음 에 이 대상 에 게 실제 물리 적 메모 리 를 분배 해 야 합 니 다. 바로 new 키워드 로 메모 리 를 분배 한 다음 에 인용 과 분 배 된 메모 리 를 연결 하 는 것 입 니 다.
2. 클래스 와 대상 간 의 차이: 클래스 는 새로운 데이터 형식 을 만 들 수 있 습 니 다. 이러한 새로운 데이터 형식 으로 대상 을 만 들 수 있 습 니 다. 즉, 구성원 간 의 관 계 를 정의 하 는 논리 적 프레임 워 크 를 만 들 수 있 습 니 다. 하나의 대상 을 설명 할 때 이러한 인 스 턴 스 를 만 들 고 있 습 니 다. 따라서 클래스 는 논리 적 구조 이 고 대상 은 물리 적 진실성 을 가지 고 있 습 니 다.(즉 대상 이 메모리 에 공간 을 차지 하 는 것).
3.Student std1 = new Student(); Student std2 = std1;
이때 std1 과 std2 는 같은 대상 을 null 로 가리 키 고 있 습 니 다.
null 은 매우 특수 합 니 다. 만능 대상 입 니 다. 모든 대상 을 표시 할 수 있 습 니 다. 메모리 공간 이 존재 하지 않 습 니 다. null 은 인 스 턴 스 가 존재 하지 않 음 을 표시 합 니 다.
String str 1 = null; str 1 은 null 입 니 다. 메모리 에 문자열 쌍 을 만 들 지 않 았 습 니 다. String str 2 = "; str 2 에서 인용 한 문자열 쌍 이 존재 합 니 다. 이 문자열 의 값 은" "일 뿐 입 니 다. .
방법 소개
1.type name(parameterList){ ...방법의 실현 }
그 중에서 type 은 이 방법 이 되 돌아 오 는 데이터 형식 을 지정 합 니 다. 이것 은 만 든 클래스 의 형식 을 포함 하여 모든 유효한 형식 일 수 있 습 니 다. 이 방법 이 값 을 되 돌려 주지 않 으 면 되 돌아 오 는 형식 은 반드시 void 여야 합 니 다.
방법 명 은 name 에서 지정 하여 스스로 정의 할 수 있 지만 의미 가 있어 야 하 며 a, b, c 등 무의미 한 이름 으로 정의 할 수 없습니다.
parameterList 매개 변수 목록 은 쉼표 로 분 리 된 유형 과 식별 자 시퀀스 입 니 다. 매개 변 수 는 본질 적 으로 변수 이 고 방법 이 호출 될 때 필요 한 실제 매개 변수 에 대응 합 니 다. 방법 에 매개 변수 가 없 으 면 매개 변수 목록 이 비어 있 습 니 다.
반환 형식 은 void 가 아 닌 방법 으로 다음 형식 return 문 구 를 사용 하여 호출 프로그램 에 값 을 되 돌려 줍 니 다. return value; 그 중 value 는 되 돌아 오 는 값 입 니 다.
2. 반환 값 이 없고 매개 변수 목록 이 없 는 방법
//예시 2: StudentDemo 02. java
class Student
{
String stdName; //
String stdSex; //
int stdAge; //
double chineseMark; //
double mathMark; //
double englishMark; //
void introductionSelf()
{
System.out.println(" ");
System.out.println(" :" + stdName);
System.out.println(" :" + stdSex);
System.out.println(" :" + stdAge);
System.out.println(" :" + chineseMark);
System.out.println(" :" + mathMark);
System.out.println(" :" + englishMark);
System.out.println();
}
}
class StudentDemo02
{
public static void main(String[] args)
{
//
//Student stdZhang = new Student();
Student stdZhang;
stdZhang = new Student();
//
stdZhang.stdName = " ";
stdZhang.stdSex = " ";
stdZhang.stdAge = 20;
stdZhang.chineseMark = 98;
stdZhang.mathMark = 99;
stdZhang.englishMark = 100;
stdZhang.introductionSelf();
//
//Student stdLi = new Student();
Student stdLi;
stdLi = new Student();
//
stdLi.stdName = " ";
stdLi.stdSex = " ";
stdLi.stdAge = 18;
stdLi.chineseMark = 88;
stdLi.mathMark = 89;
stdLi.englishMark = 90;
stdLi.introductionSelf();
//
//Student stdZhao = new Student();
Student stdZhao;
stdZhao = new Student();
//
stdZhao.stdName = " ";
stdZhao.stdSex = " ";
stdZhao.stdAge = 22;
stdZhao.chineseMark = 78;
stdZhao.mathMark = 79;
stdZhao.englishMark = 70;
stdZhao.introductionSelf();
}
}
여기 void 는 반환 값 이 없습니다. introductionSelf () 는 방법 명 입 니 다. 괄호 안에 매개 변수 목록 이 없 으 면 이 방법 은 매개 변 수 를 전달 할 필요 가 없다 는 것 을 설명 합 니 다. 괄호 안의 내용 은 방법의 실현 부분 입 니 다. 그리고 프로그램 에서 호출 할 때 stdZhang. introduction Self () 를 통 해 이 방법 을 호출 할 수 있 습 니 다.
3. 매개 변수 목록 이 있 고 값 을 되 돌려 주 는 방법 이 없 는 쓰기
//예시 3: StudentDemo 03. java
class Student
{
String stdName; //
String stdSex; //
int stdAge; //
double chineseMark; //
double mathMark; //
double englishMark; //
//
void introductionSelf()
{
System.out.println(" ");
System.out.println(" :" + stdName);
System.out.println(" :" + stdSex);
System.out.println(" :" + stdAge);
System.out.println(" :" + chineseMark);
System.out.println(" :" + mathMark);
System.out.println(" :" + englishMark);
System.out.println();
}
// this
void initSelf(String _stdName,String _stdSex,int _stdAge, double _chineseMark,double _mathMark,double _englishMark)
{
stdName = _stdName;
stdSex = _stdSex;
stdAge = _stdAge;
chineseMark = _chineseMark;
mathMark = _mathMark;
englishMark = _englishMark;
}
}
class StudentDemo03
{
public static void main(String[] args)
{
//
//Student stdZhang = new Student();
Student stdZhang;
stdZhang = new Student();
stdZhang.initSelf(" "," ",28, 98D,95D,97D);
stdZhang.introductionSelf();
//
//Student stdLi = new Student();
Student stdLi;
stdLi = new Student();
//
stdLi.initSelf(" "," ",28, 88D,85D,87D);
stdLi.introductionSelf();
//
//Student stdZhao = new Student();
Student stdZhao;
stdZhao = new Student();
//
stdZhao.initSelf(" "," ",22, 78D,75D,77D);
stdZhao.introductionSelf();
}
}
4. 반환 값 이 있 고 매개 변수 목록 이 없 는 방법 으로 작성 합 니 다.
//예시 4: StudentDemo 04. java
class Student
{
String stdName; //
String stdSex; //
int stdAge; //
double chineseMark; //
double mathMark; //
double englishMark; //
//
void introductionSelf()
{
System.out.println(" ");
System.out.println(" :" + stdName);
System.out.println(" :" + stdSex);
System.out.println(" :" + stdAge);
System.out.println(" :" + chineseMark);
System.out.println(" :" + mathMark);
System.out.println(" :" + englishMark);
}
//
void initSelf(String stdName,String stdSex,int stdAge, double chineseMark,double mathMark,double englishMark)
{
this.stdName = stdName;
this.stdSex = stdSex;
this.stdAge = stdAge;
this.chineseMark = chineseMark;
this.mathMark = mathMark;
this.englishMark = englishMark;
}
//
double markAvg()
{
double mark = 0D;
mark = (chineseMark + mathMark + englishMark)/3;
return mark;
}
}
class StudentDemo04
{
public static void main(String[] args)
{
double mark = 0; // ,
//
//Student stdZhang = new Student();
Student stdZhang;
stdZhang = new Student();
stdZhang.initSelf(" "," ",28, 98D,98D,98D);
stdZhang.introductionSelf();
mark = stdZhang.markAvg();
System.out.println(" :" + mark);
//System.out.println(" :" + stdZhang.markAvg());
System.out.println();
//
//Student stdLi = new Student();
Student stdLi;
stdLi = new Student();
//
stdLi.initSelf(" "," ",28, 88D,88D,88D);
stdLi.introductionSelf();
System.out.println(" :" + stdLi.markAvg());
System.out.println();
//
//Student stdZhao = new Student();
Student stdZhao;
stdZhao = new Student();
//
stdZhao.initSelf(" "," ",22, 78D,78D,78D);
stdZhao.introductionSelf();
System.out.println(" :" + stdZhao.markAvg());
}
}
5. 반환 값 이 있 고 매개 변수 목록 이 있 는 방법 을 쓰 는 방법
//예시 5: StudentDemo 05. java
class Student
{
String stdName; //
String stdSex; //
int stdAge; //
double chineseMark; //
double mathMark; //
double englishMark; //
//
void introductionSelf()
{
System.out.println(" ");
System.out.println(" :" + stdName);
System.out.println(" :" + stdSex);
System.out.println(" :" + stdAge);
System.out.println(" :" + chineseMark);
System.out.println(" :" + mathMark);
System.out.println(" :" + englishMark);
}
//
void initSelf(String stdName,String stdSex,int stdAge, double chineseMark,double mathMark,double englishMark)
{
this.stdName = stdName;
this.stdSex = stdSex;
this.stdAge = stdAge;
this.chineseMark = chineseMark;
this.mathMark = mathMark;
this.englishMark = englishMark;
}
//
double markAvg()
{
double mark = 0D;
mark = (chineseMark + mathMark + englishMark)/3;
return mark;
//return (chineseMark + mathMark + englishMark)/3;
}
// ,
boolean markEquals(Student std)
{
return this.markAvg() > std.markAvg();
}
}
class StudentDemo04
{
public static void main(String[] args)
{
//
//Student stdZhang = new Student();
Student stdZhang;
stdZhang = new Student();
stdZhang.initSelf(" "," ",28, 98D,98D,98D);
stdZhang.introductionSelf();
double mark = stdZhang.markAvg();//
System.out.println(" :" + mark);
//System.out.println(" :" + stdZhang.markAvg());
System.out.println();
//
//Student stdLi = new Student();
Student stdLi;
stdLi = new Student();
//
stdLi.initSelf(" "," ",28, 88D,88D,88D);
stdLi.introductionSelf();
System.out.println(" :" + stdLi.markAvg());
System.out.println();
//
//Student stdZhao = new Student();
Student stdZhao;
stdZhao = new Student();
//
stdZhao.initSelf(" "," ",22, 78D,78D,78D);
stdZhao.introductionSelf();
System.out.println(" :" + stdZhao.markAvg());
}
}
4. static 의 역할
한 구성원 이 static 로 밝 혀 지면 클래스 의 모든 대상 이 만 들 기 전에 접근 할 수 있 습 니 다. 대상 을 참조 하지 않 아 도 됩 니 다. 방법 과 변 수 를 static 로 설명 할 수 있 습 니 다. static 구성원 의 가장 흔 한 예 는 main () 입 니 다. 프로그램 이 실 행 될 때 main () 을 호출 해 야 하기 때문에 static 로 밝 혀 집 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.