Javase之类和对象

1.类的定义和使用

类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性,哪些功能,描述完成之后计算机就可以识别了

简单来说类就像是一个模型,用来对一个实体进行描述,限定了类有哪些成员。

类只是一个设计,实例化出的对象才能实际存储数据和占用物理空间

在Java中定义类时需要用到关键字class,比如class ClassName{},class为定义类的关键字,ClassName为类的名字,{}中的内容为类的实体。

类中包含的内容称为类的成员。属性主要是⽤来描述类的,称之为类的成员属性或者类成员变量。⽅法主要说明类具有哪些功能,称为类的成员⽅法

注意:

1.类的名字要采用大驼峰定义,成员前写法统一为public,此处写的方法不需要带static关键字。

2.一般一个文件中只定义一个类,public修饰的类的名字需要与文件名一致,同时不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改。

2.类的实例化

2.1什么是实例化

实例化是指用你所定义的一个类,用类重新创建对象的过程,称为类的实例化

new关键字用于创建一个对象的实例,使用.来访问对象中属性和方法,同一个类可以创建多个实例

3.this关键字

this引⽤指向当前对象(成员⽅法运⾏时调⽤该成员⽅法的对象),在成员⽅法中所有成员变量的操作, 都是通过该引⽤去访问。只不过所有的操作对⽤⼾是透明的,即⽤⼾不需要来传递,编译器⾃动完成

如果形参名不小心与成员变量名相同,会发生如下

实例无法存储数据

此时三个对象都在调用setDate和printDate函数,但是此时两个函数中没有任何有关对象的说明,可以使用this引用当前对象来达到存储数据的目的,setDate和printDate函数不知道要存储或打印的是那个对象的数据,可使用this来引用当前对象,来正确存储和打印对象

关键点在于this代表的 是当前对象的引⽤,当前对象就是指:哪个对象调⽤setDay⽅法,谁就是this引⽤!

this引⽤的特性:

1. this的类型:对应类类型引⽤,即哪个对象调⽤就是哪个对象的引⽤类型 2. this只能在"成员⽅法"中使⽤3. 在"成员⽅法"中,this只能引⽤当前对象,不能再引⽤其他对象 4. this是“成员⽅法”第⼀个隐藏的参数,编译器会⾃动传递,在成员⽅法执⾏时,编译器会负责将 调⽤成员⽅法对象的引⽤传递给该成员⽅法,this负责来接收

4.对象的构造及初始化

在创建一个内部局部变量时,必须要进行初始化,否则会编译失败。

如果是对象,需要调⽤之前写的SetDate⽅法才可以将具体的⽇期设置到对象中。通过上述例⼦发现两个问题:1. 每次对象创建好后调⽤SetDate⽅法设置具体⽇期,⽐较⿇烦,那对象该如何初始化? 2. 局部变量必须要初始化才能使⽤,为什么字段声明之后没有给值依然可以使⽤?

4.1默认初始化

对于成员变量来说,如果没有进⾏初始化,会有⼀个对应的默认值,默认值遵循如下规则:

4.2就地初始化

在声明成员变量时,就直接给出了初始值。

4.3构造初始化

4.3.1构造方法概念

构造⽅法(也称为构造器)是⼀个特殊的成员⽅法,名字必须与类名相同,在创建对象时,由编译器⾃动 调⽤,并且在整个对象的⽣命周期内只调⽤⼀次。

4.3.2 构造⽅法注意事项

 1. 名字必须与类名相同 2. 没有返回值类型,设置为void也不⾏ 3. 创建对象时由编译器⾃动调⽤,并且在对象的⽣命周期内只调⽤⼀次(相当于⼈的出⽣,每个⼈只能 出⽣⼀次) 4. 构造⽅法可以重载(⽤⼾根据⾃⼰的需求提供不同参数的构造⽅法)

上述有两个构造方法:名字都一样,参数个数不同,所以构成了重载。

5.如果⽤⼾没有显式定义,编译器会⽣成⼀份默认的构造⽅法,⽣成的默认构造⽅法是⽆参的。

⼀旦⽤⼾定义了其他的构造⽅法,编译器则不再⽣成

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

this(...)必须是构造方法中第一条语句,且不能形成环的调用

7. 绝⼤多数情况下使⽤public来修饰,特殊场景下会被private修饰

5.对象的打印

如果我们直接打印对象的引⽤,此时输出的结果为:类路径名@对象的hashcode值。

如果想要默认打印对象中的属性该如何处理呢?答案:重写toString⽅法即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值