java类和对象<详解>

类的定义:类是用来对一个实体(对象)进行描述。

定义格式:在Java中定义类时需要用到class关键字,如

//创建类

class ClassName{

field;//字段(属性)或者成员变量

method;//行为或者成员方法

}

 class为定义类的关键字,className为类名,{}为类的主体。


类中包含的内容称为类的成员。属性主要是用来描述类的,称为类成员属性或类成员变量

方法主要说明具有哪些功能,称为类的成员方法

 

注意事项: 1.类名注意采用大驼峰定义

2.成员前写法统一用public

3.此处写的方法不带static关键字。

 


类的实例化

定义 :用类类型创建对象的过程,称为类的实例化,在java中采用new关键字,配合类名来实例化对象。

 输出结果:

阿黄:旺旺旺...

阿黄:摇尾巴...

赛虎:旺旺旺...

赛虎:摇尾巴...

this引用 :

Java中提供了this关键字,this关键字总是指向调用该方法的对象

根据this出现位置的不同,this作为对象的默认引用有两种情形:

a.构造器中引用该构造器正在初始化的对象

b.在方法中引用调用该方法的对象

 为什么要有this引用:

1.形参名不小心与成员变量名相同:

public void setDay(int year, int month, int day){

year = year;

month = month;

day = day;

}

 2.三个对象都在调用setDate和printDate函数,但是这两个函数中没有任何有关对象的说明,setDate和printDate函数如何知道打印的是哪个对象的数据呢?

 

 this引用的特性:

1.this的类型:对应类型引用,即哪个对象调用就是哪个对象的引用类型

2.this只能在成员方法中使用

3.在“成员方法”中,this只能引用当前对象,不能再引用其他对象

4.this是“成员方法”第一个隐藏的参数,编译器会自动传递,在成员方法执行时,编译器会负责将调用成员方法 对象的引用传递给该成员方法,this负责来接收

 

 对象的构造

 通过上述例子发现两个问题:

1. 每次对象创建好后调用SetDate方法设置具体日期,比较麻烦,那对象该如何初始化?

2. 局部变量必须要初始化才能使用,为什么字段声明之后没有给值依然可以使用?

构造方法

概念:构造方法(也称为构造器)是一个特殊的成员方法,名字必须与类名相同,在创建对象时,由编译器自动调用,并且 在整个对象的生命周期内只调用一次

 

注意:构造方法的作用就是对对象中的成员进行初始化,并不负责给对象开辟空间。 

构造方法特性 :

1. 名字必须与类名相同

2. 没有返回值类型,设置为void也不行

3. 创建对象时由编译器自动调用,并且在对象的生命周期内只调用一次(相当于人的出生,每个人只能出生一次)

4. 构造方法可以重载(用户根据自己的需求提供不同参数的构造方法)

 

上述两个构造方法:名字相同,参数列表不同,因此构成了方法重载。 

5. 如果用户没有显式定义,编译器会生成一份默认的构造方法,生成的默认构造方法一定是无参的。

 

上述Date类中,没有定义任何构造方法,编译器会默认生成一个不带参数的构造方法。 

6.构造方法中,可以通过this调用其他构造方法来简化代码 

注意:this(...)必须是构造方法的第一条语句 。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值