자바 학습 노트 의 대상 및 클래스
11409 단어 Java
이 블 로그 에 서 는 주로 유형 과 대상 의 개념 을 탐구한다.
대상(Object):대상 은 상태 와 행 위 를 가지 고 있 습 니 다.예 를 들 어 개 한 마 리 는 색깔,이름,품종 등 속성 을 가지 고 흔 들 림,개 짖 음 과 먹 는 행위 도 가진다.대상 은 클래스 의 인 스 턴 스 입 니 다.
클래스(Class):클래스 는 행동 이나 상 태 를 설명 하 는 템 플 릿 이나 청사진 으로 정의 할 수 있 습 니 다.
1.자바 의 대상(Objects)
현실 생활 에서 우 리 는 차,개,인류 등 많은 대상 을 쉽게 찾 을 수 있다.이런 대상 들 은 모두 대응 하 는 상태 와 행 위 를 가진다.
현실 생활 의 대상 에 비해 소프트웨어 의 대상 도 비슷 한 특징 이 있다.그것들 도 상태 와 행동 이 있다.다만 소프트웨어 의 상 태 는 필드(fields)에 저 장 된 것 이 고 행 위 는 방법(methods)을 통 해 나타난다.
2.자바 의 클래스(Classes)
클래스 는 하나의 대상 을 만 드 는 청사진 입 니 다.
클래스 생 성 은 다음 과 같 습 니 다:
public class Dog{
String breed;
int ageC
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
구조 함수(Constructors)
모든 종 류 는 하나의 구조 함수 가 있다.만약 우리 가 하나의 클래스 에 구조 함 수 를 명확 하 게 쓰 지 않 았 다 면 자바 컴 파일 러 는 이 클래스 에 기본 적 인 구조 함 수 를 만 들 것 입 니 다.
새 대상 이 생 성 될 때마다 최소한 하나의 구조 함수 가 호출 됩 니 다.구조 함 수 는 반드시 클래스 와 동명 이 어야 한다.하나의 종 류 는 여러 개의 구조 함수 가 있 을 수 있다.
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// This constructor has one parameter, name.
}
}
생 성 대상
앞에서 언급 한 바 와 같이 클래스 는 대상 에 게 청사진 을 제공 했다.그래서 대상 은 클래스 에서 만 들 어 졌 습 니 다.자바 에 서 는
new
키워드 로 새 대상 을 만들어 야 합 니 다.생 성 대상 절차:-성명(Declaration)-실례 화(Instantiation):
new
키워드-초기 화(Initialization):new
키워드 다음 에 구조 함수 호출 및 초기 화.예:
public class Puppy{
public Puppy(String name){
// This constructor has one parameter, name.
System.out.println("Passed Name is :" + name );
}
public static void main(String []args){
// Following statement would create an object myPuppy
Puppy myPuppy = new Puppy( "tommy" );
}
}
실행 결과:
Passed Name is :tommy
인 스 턴 스 변수 와 방법 에 접근 합 니 다.
인 스 턴 스 변수 와 방법 에 접근 하 는 것 은 대상 을 만 드 는 것 을 통 해 이 루어 집 니 다.예:
/* First create an object */
ObjectReference = new Constructor();
/* Now call a variable as follows */
ObjectReference.variableName;
/* Now you can call a class method as follows */
ObjectReference.MethodName();
완전한 예:
public class Puppy{
int puppyAge;
public Puppy(String name){
// This constructor has one parameter, name.
System.out.println("Name chosen is :" + name );
}
public void setAge( int age ){
puppyAge = age;
}
public int getAge( ){
System.out.println("Puppy's age is :" + puppyAge );
return puppyAge;
}
public static void main(String []args){
/* Object creation */
Puppy myPuppy = new Puppy( "tommy" );
/* Call class method to set puppy's age */
myPuppy.setAge( 2 );
/* Call another class method to get puppy's age */
myPuppy.getAge( );
/* You can access instance variable as follows as well */
System.out.println("Variable Value :" + myPuppy.puppyAge );
}
}
실행 결과:
Name chosen is :tommy
Puppy's age is :2
Variable Value :2
원본 파일 의 설명 규칙
원본 파일 에서 클래스 성명,
import
문장,package
문장 은 다음 과 같은 규칙 을 따라 야 합 니 다.-원본 파일 마다 하나의public
종류 만 있 을 수 있 습 니 다.-하나의 원본 파일 에 여러 개의 비public
클래스 가 있 을 수 있 습 니 다.-public
클래스 이름 은 원본 파일 이름과 일치 해 야 하 며 원본 파일 이름 은 접미사.java
로 끝내 야 합 니 다.-하나의 클래스 가 특정한 가방 에 정의 된다 면package
문 구 는 원본 파일 의 첫 줄 에 있어 야 합 니 다.-원본 파일 에import
문구 가 존재 한다 면package
문구 와 클래스 성명 사이 에 두 어야 합 니 다.원본 파일 에package
문구 가 없다 면 원본 파일 의 첫 줄 에 두 어야 합 니 다.-import
문장 과package
문장 은 원본 파일 의 모든 종류 에 유효 하 다.같은 원본 파일 에 서 는 서로 다른 종류의 가방 에 설명 할 수 없습니다.클래스 는 몇 가지 서로 다른 방문 등급 이 있 고 클래스 도 서로 다른 유형 으로 나 뉜 다.예 를 들 어
abstract
류,final
류 등 이다.이 몇 가지 종 류 를 제외 하고 자바 에는 특별한 종류 가 있 는데Inner
류 와Anonymous
류 가 있다.자바 패키지
그것 은 클래스 와 인터페이스의 분류 에 간편 한 방법 을 제공 했다.자바 개발 애플 리 케 이 션 에 서 는 수백 개의 클래스 와 인터페이스 가 자주 쓰 인 다 는 것 을 잘 알 고 있 습 니 다.그러면 이 를 분류 하면 우리 의 작업 이 간편 해 질 것 입 니 다.
Import 구문
자바 에 서 는 패키지 이름과 클래스 를 포함 하 는 완전히 합 격 된 이름 을 제공 하면 컴 파일 러 는 소스 코드 나 클래스 로 쉽게 찾 을 수 있 습 니 다.
Import
문 구 는 바로 컴 파일 러 에 적당 한 위 치 를 제공 하 는 방법 이다.예 를 들 어 다음 줄 의 코드 는 컴 파일 러 가
java_installation/java/io
디 렉 터 리 에 있 는 모든 종 류 를 불 러 오 는 것 을 알려 주 는 것 입 니 다.import java.io.*;
간단 한 사례 연구
Employee.java 파일
import java.io.*;
public class Employee{
String name;
int age;
String designation;
double salary;
// This is the constructor of the class Employee
public Employee(String name){
this.name = name;
}
// Assign the age of the Employee to the variable age.
public void empAge(int empAge){
age = empAge;
}
/* Assign the designation to the variable designation.*/
public void empDesignation(String empDesig){
designation = empDesig;
}
/* Assign the salary to the variable salary.*/
public void empSalary(double empSalary){
salary = empSalary;
}
/* Print the Employee details */
public void printEmployee(){
System.out.println("Name:"+ name );
System.out.println("Age:" + age );
System.out.println("Designation:" + designation );
System.out.println("Salary:" + salary);
}
}
EmployeTest.java 파일
import java.io.*;
public class EmployeeTest{
public static void main(String args[]){
/* Create two objects using constructor */
Employee empOne = new Employee("James Smith");
Employee empTwo = new Employee("Mary Anne");
// Invoking methods for each object created
empOne.empAge(26);
empOne.empDesignation("Senior Software Engineer");
empOne.empSalary(1000);
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("Software Engineer");
empTwo.empSalary(500);
empTwo.printEmployee();
}
}
컴 파일:
C:\> javac Employee.java
C:\> javac EmployeeTest.java
C:\> java EmployeeTest
Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.