Java--类和对象

我们先了解一个思想--面向对象编程,我们可以比喻成搭积木

类就是特定形状的积木类型:比如长方形,正方形,圆柱形积木等,他们有自己的特点和功能。

对象就是积木的实例:就是从长方形类积木中拿出一块,它具有类的属性和行为,你可以用它来搭建不同形状的结构。

编程就是搭建的过程:面向对象编程过程就是用不同形状的积木来搭建一个复杂的模型,同过组合各种对象来构造整个程序系统,不同的组合方式可以实现不同的功能。

一、类)

我们对于类的定义通常使用大驼峰的方式来定义类名(每个单词的首字母大写)

就如长图,我们定义了一个长方形类,它可以有长(l),宽(w),面积(area),周长(perimeter),我们通常把这些叫做成员变量,也叫做成员属性,即它具有这些属性。

可以类比于c语言的结构体,但是还是有些区别。

当然!计算面积和周长还需要有方法,下面我们就来讲讲成员方法

类似于c语言中的函数,这就是成员方法,可以计算周长,面积,并且将返回值传回去。

需要注意的是:public 修饰的类名必须是文件名,且只能有一个!

比如我前面定义的长方形类,它不能被public 修饰,因为我的文件名不是Rectangle。

上图可以看见,我的文件名是Main.java的后缀,所以我只能用public 来修饰Main的类。

二、实例化对象)

前面讲到对象就是从类中拿出一个。比如我从长方形类中拿出一个长方形,那么这个长方形有自己的长和宽和面积等属性。

这样我们就完成了对象的实例化。也就是有一个长方形,它名字是rectangle,当然名字可以随便取。它有长,宽,面积等属性。请看下图

我们可以给这个长方形里面的长宽,面积等赋值。

运用点(.)运算符来调用类中的成员属性。当成员变量没有被赋值时,就有自己的初始属性

{int  :0,   float:0.0   ,char:‘\u0000’   ,boolean: false};

也就是说,如果我没有给我的长或宽等赋值,那么它默认值是0。

三、this引用

如果我想在Rectangle类中有一种方法可以让我们调用的时候就给成员变量赋值,诶?我定义了一个setL的方法来给我的l赋值,穿进去一个2,那么,当我打印l的时候,结果会是什么呢?

诶?怎么回事?怎么会是0呢?这就要讲到我们的主角了this关键字。首先,它为什么打印的是0呢?因为我们遵循的是就近原则,传进来的l是左边被赋值的l又是右边的l,那就需要用到this了。

哇!加上后就变成了2呢!因为this引用,谁调用this,this就指向那个类,当我们的rectangle调用setL方法时就调用了this引用也就引用了这个类,所以l就成了类中的l。听懂了吗?

四、构造方法(一个特殊的方法)

构造方法有几个特征

1.方法名必须与类名相同。

2.无返回值。

3.创建对象时,编译器自动调用。

4.若无构造方法,则编译器会自动提供一个无参构造方法,如果提供了,那么就调用我们给的构造方法。

5.this():表示调用当前类中的其他构造方法,(只能放在构造方法中的第一行,且只能在当前的构造方法内部使用)。

发现了吗?我前面没有提供构造方法,但也能运行,因为,编译器自动提供了一个无参构造方法,而我现在改成一个有参构造方法,并且传入一个而,这个l就被初始化成了2.

这个例子说明了当我们创建一个长方形对象时,它自动调用了构造方法,并且调用的是我们所给出来的构造方法。

五、static修饰

1.static修饰的成员变量属于类,不属于对象所以是通过类名.变量名调用(虽然也可以正常的对象名.变量名,但不推荐这样写)

2.static修饰的成员变量只能有一份。

可以看到我们给w赋值了4,当我们创建对象后每个对象的w都是4,且当我们再次将w改变值的时候,所有的对象中w值都会变,因为他们共用一个w。

3.生命周期

static修饰的变量随着类的创建而创建,但是没有被修饰的就是随着对象的创建而创建。也就是,没被static修饰的变量会随着超出作用域而销毁。

4.静态方法内部不能直接调用非静态变量,若需要调用则必须有对象的引用。

5.静态方法不依赖于对象(和前面的静态变量类似)。

6.静态方法不能被重写。(后续会讲)

那么,这次的分享就到此为止了,如果喜欢我的blog就点点关注点点赞,精彩还在继续。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值