类和对象

类和对象的初步认识

  1. 什么是类,什么是对象?
    答:类就是一个抽象的模板,而对象则是一个个由这个模板刻画出来的实例
    在这里插入图片描述
    如上图所示,对象就是实例化的类,就像是现实中的实物被抽象的归类一样。
  2. 区分面向对象以及面向过程:
    答:面向对象:注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。面向过程:注重的是过程,在整个过程中所涉及的行为,就是功能。
    面向对象的语言有:C++,JAVA
    面向过程的语言为:C语言
  3. 小小面试题:说一下OOP语言的三大特征
    答:首先,OOP语言是指面向对象编程的语言。其次,它的三大特征有继承、封装、多态
  4. 开发时。面向对象编程的三部曲
    答:找对象,建对象,用对象。

类和类的实例化

总而言之,类相当于一个模板,而对象是由这个模板产生的样本。

基本语法

在这里插入图片描述
如上图所示:类中包含成员属性与成员方法。成员属性为类中的元素,成员方法为类中的函数。
属性(成员变量)分为实例数据成员以及静态数据成员。
方法(成员方法)可以分为实例成员方法以及静态成员方法。
注:一个类可以是实例化多个对象。
在这里插入图片描述
在实例化过程中使用 per.方法以及per.数据成员来调用。
person中为实例的引用,存放在栈中。而成员变量以及方法存放在堆中。
静态的数据成员和方法只需要通过类名进行访问或者调用。静态数据成员和方法不依赖于对象。

类的成员

类的成员可以包含字段、方法、代码块、内部类以及接口等

字段

字段是在类中但是在方法外定义的变量,用于描述类中包含哪些数据。
使用“.”来访问字段,既可以读也可以写。

方法

用来描述一个对象的行为。

static关键字

可以修饰属性、修饰方法、代码块以及修饰类。

修饰属性:java静态属性和类相关和具体的实例无关。换句话说, 同一个类的不同实例共用同一个静态属性。
修饰方法:如果在方法上应用static关键字,则这个方法就是静态方法。静态方法属于类,不属于类的对象;可以直接调用静态方法,无需创建类的实例;金泰方法可以访问静态数据成员,并可以更改静态数据成员的值。
main方法为静态方法

封装

在我们写代码的时候经常会涉及两种角色: 类的实现者和类的调用者。
封装的本质就是让类的调用者不必太多的了解类的实现者是如何实现类的, 只要知道如何使用类就行了。
这样就降低了类使用者的学习和使用成本, 从而降低了复杂程度。

private实现封装

private和public叫做访问修饰限定符。
被private修饰的属性或者方法不可以在类外进行访问或者调用。

getter和setter方法

用private修饰字段的时候,就无法直接使用这个字段。所以需要使用getter/setter方法。
getName就是获取Name中的值。
setName就是设置Name这个成员中的值。
当set方法的形参名字和类中的成员属性的名字一样的时候,如果不使用this, 相当于自赋值. this 表示当前实例 的引用.

构造方法

问:生成一个对象需要几步?
答:两部,第一步给对象分配内存;第二步调用合适的构造方法,构造方法不止一个。
规则
1.方法名称必须与类名称相同。
2. 构造方法没有返回值类型声明。
3. 构造方法支持重载. 规则和普通方法的重载一致。
注意
1.如果类中没有提供任何的构造函数,那么编译器会默认生成一个不带有参数的构造函数。
2.若类中定义了构造方法,则默认的无参构造将不再生成。
3.构造方法支持重载. 规则和普通方法的重载一致。

this关键字

this表示当前对象的引用,可以用this来访问对象的字段和方法。
this.成员变量
this.成员方法
this();调用构造方法只能调用一个构造方法。

认识代码块

字段的初始化方式有:
1.就地初始化
2.使用构造方法初始化
3.使用代码块初始化
前两种方式前面已经学习过了, 接下来我们介绍第三种方式, 使用代码块初始化.

什么是代码块

使用{}定义的一段代码就叫做代码块。
代码块可以分为普通代码块、构造块、静态块和同步代码块

普通代码块

就是定义在方法中的代码块

构造代码块

定义在类中的代码块(不加修饰符)。也叫实例代码块。构造代码块一般用于初始化实例成员变量。
实例代码块优先于构造函数执行。

静态代码块

使用static定义的代码块,一般用于初始化静态成员变量。
注意:
静态代码块不管生成多少个对象,其只会执行一次,且是最先执行的。
静态代码块执行完毕后,实例代码块(构造块)执行,再然后是构造函数执行 。

补充说明

toString可以用来将对象转换成字符串。

重点总结:

1.一个类可以产生无数个对象,类就是模板,对象就是具体的实例。
2.类中定义的属性,大概分为几类:类属性,对象属性。其中被static所修饰的数据属性称为类属性,static修饰的方法称为类方法,特点是不依赖于对象,我们只需要通过类名就可以调用其属性或者方法。
3.静态代码块优先于实例代码块执行,实例代码块优先于构造代码块执行。
4.this关键字代表的是当前的引用。并不是当前对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值