> 일반적인 문제 > 자바 객체를 이해하는 방법

자바 객체를 이해하는 방법

百草
풀어 주다: 2023-06-21 11:13:01
원래의
2056명이 탐색했습니다.

Java 객체는 실제로 클래스의 특정 구현에 의해 생성됩니다. 클래스가 없으면 클래스가 많은 객체를 생성할 수 없습니다. 클래스는 특정 공통 특성을 가진 엔터티의 모음이며 동일한 특성을 가진 엔터티의 추상화이며 "사물" 유형의 속성과 동작의 추상화입니다. 객체는 현실 세계의 실체입니다. 객체와 실체 사이에는 일대일 대응이 있습니다. 즉, 현실 세계의 모든 실체는 객체이므로 객체는 특정 개념입니다.

자바 객체를 이해하는 방법

이 튜토리얼의 운영 체제: Windows 10 시스템, Java 버전 19.0.1, Dell G3 컴퓨터.

1. 객체 개념

1. 객체는 우리가 정의한 클래스에 의해 생성됩니다.

2. 객체는 실제로 클래스의 특정 구현입니다.

예: 건물을 지을 때 그린 설계 도면은 클래스이고, 설계 도면에 따라 지어진 실제 거주 가능한

건물은 객체입니다.

클래스--추상 [다음과 같은 것 추출]--템플릿 [디자인]

객체--구현--인스턴스 [빌딩]

3 클래스가 없으면 객체도 없습니다

4. 여러 객체를 생성합니다

5. 클래스는 객체의 템플릿이며 객체는 클래스의 진정한 표현입니다

객체의 역할

클래스의 변수 및 메서드 호출

클래스는 특정 공통 특성을 가진 엔터티는 동일한 특성을 가진 엔터티를 추상화하는 추상 데이터 유형입니다. 객체 지향 프로그래밍 언어에서 클래스는 "사물" 유형의 속성과 동작을 추상화한 것입니다.

객체는 현실 세계의 개체입니다. 객체와 개체 사이에는 일대일 대응이 있습니다. 즉, 현실 세계의 모든 개체는 개체이므로 개체는 특정 개념입니다.

2. 객체 생성 방법 [new]

1. 현재 클래스에서는--new+constructor 메소드---this

2. 다른 클래스에서는--new+constructor 메소드

형식: new 생성자 메소드 ([매개변수 값] );

예: 이 클래스에서는

packagecom.wangxing.test1;

publicclassduiXiang{
//创建公共实例成员变量/静态变量
publicStringname="zhangsan";
publicstaticintint1=1001;
publicduiXiang(){
newduiXiang();
//当对象在类中声明,要使用变量或方法时
System.out.println(newduiXiang().int1);
System.out.println(this.int1);
}
}
로그인 후 복사

다른 클래스에서

packagecom.wangxing.test1;

publicclasstest{
publicstaticvoidmain(Stringargs[]){
newduiXiang();
}
}
로그인 후 복사

3. 객체 액세스 변수

1. 로컬 변수는 다른 클래스에서 액세스할 수 없습니다.

2. 인스턴스 변수는 개체로만 액세스할 수 있습니다

3. 정적 변수는 클래스 이름으로 액세스할 수 있으며 개체로 액세스할 수 있습니다.

4. 인스턴스 변수는 동일한 클래스의 여러 개체 간에 데이터를 공유할 수 없습니다.

정적 변수 동일한 클래스에 있습니다. 데이터는 여러 개체 간에 공유될 수 있습니다.

예:

packagecom.wangxing.test1;

publicclassfangWenBianLiang{
//创建实例成员和静态成员
publicStringname="lisi";
publicstaticintint1=1001;
publicfangWenBianLiang(){}
//创建一个无返回值和无参实例方法
publicvoidmethod1(){
//实例方法只能对象访问或者this指向这个类的对象
System.out.println("对象访问实例变量="+newfangWenBianLiang().name);
System.out.println("对象访问实例变量="+this.name);
//System.out.println("实例变量只能对象访问实例变量="+object.name);
//静态变量类名访问,可以对象访问
System.out.println("对象访问静态变量="+this.int1);
System.out.println("对象访问静态变量="+newfangWenBianLiang().int1);
System.out.println("对象访问静态变量="+fangWenBianLiang.int1);
}
}
로그인 후 복사

테스트 클래스 테스트 개체 액세스

packagecom.wangxing.test1;

publicclasstest{
publicstaticvoidmain(Stringargs[]){
//创建fangWenBianLiang类的对象
fangWenBianLiangobj1=newfangWenBianLiang();
fangWenBianLiangobj2=newfangWenBianLiang();
//测试实例变量和静态变量在多个对象之间数据是否共享
//实例变量
System.out.println("实例变量obj1.name="+obj1.name);
obj1.name="zhangsan";
//多个对象中不能共享数据
System.out.println("实例变量obj1.name="+obj1.name);
System.out.println("实例变量obj2.name="+obj2.name);
//静态变量
System.out.println("静态变量obj1.int1="+obj1.int1);
obj1.int1=1002;
//多个对象中能共享数据
System.out.println("静态变量obj1.int1="+obj1.int1);
System.out.println("静态变量obj2.int1="+obj2.int1);
}
}
로그인 후 복사

자바 객체를 이해하는 방법

4. 개체 액세스 방법

1. . 인스턴스 메소드만 object

3으로 접근 가능. 정적 메소드 클래스 이름 접근은 object

4로 가능하며, 매개변수는 [번호, 유형] [원하는 것, 무엇을] 전달해야 함 you want]

5. 반환 값이 있습니다. 메서드 본문의 마지막 문장은 반환된 데이터 값이 메서드의 반환 값 유형과 일치해야 합니다.

반환 값이 있는 메서드를 호출하고 정의해야 합니다. [주는 것, 받는 것]

메소드의 반환값을 받기 위한 변수예:

packagecom.wangxing.test1;

publicclassfangWenFangfa{
publicfangWenFangfa(){}
//创建无返回值无参的实例方法
publicvoidmethod1(){
System.out.println("无返回值无参的实例方法");
//this.method1();
}
publicStringmethod3(intid,Stringname){
System.out.println("有返回值返回值有参的实例方法");
Stringinfo="id=="+id+"---"+"name=="+name;
returninfo;
}
//创建无返回值无参的静态方法
publicstaticvoidmethod2(){
System.out.println("无返回值无参的静态方法");
}
}
로그인 후 복사

Test class

packagecom.wangxing.test1;

publicclasstestFangFa{
publicstaticvoidmain(Stringargs[]){
//创建fangWenFangfa类的对象
fangWenFangfafwff=newfangWenFangfa();
//实例方法只能对象访问,在同一类时可以使用this指向类对象访问实例方法
fwff.method1();
//fangWenFangfa.method1();
//静态变量,在同一类时可以使用this指向类对象访问静态方法
fwff.method2();
fangWenFangfa.method2();
//有参数方法,需要传递参数【个数,类型】【要什么,给什么】
//有返回值,方法体中的最后一句是return,返回的数据值要与方法的返回值类型匹配,
//调用有返回值的方法需要定义变量来接收方法的返回值【给什么,收什么】
Stringinfo1=fwff.method3(1001,"zhangsan");
System.out.println("对象访问有返回值参数的实例方法结果:"+info1);
}
}
로그인 후 복사

위 내용은 자바 객체를 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿