Java中的类和对象

目录

一、什么是类

二、类的定义格式

三、类的实例化

四、this的引用

1、this的作用

五、对象的构建及初始化

1、构造方法

2、默认初始化

六、封装

1、封装的概念

2访问限定符

3、包

(1)概念

(2)导入包中的类

七、static成员

1、static修饰的成员变量

2、static修饰的成员方法

3、类变量初始化

八、代码块


一、什么是类

类是用来对实体(对象)进行描述的,类是一个抽象化的概念,举个例子:工程师用图纸来建造大楼,其中类就相当于图纸,大楼相当于对象,我们可以依靠类来创造(实例化)出若干个对象

二、类的定义格式

在Java中定义类需要用到class关键字:

class为定义类的关键字;ClassName是类的名字;{ }中的是类的主体

类中包含的内容称为类的成员,可分为成员变量(也称为字段或成员属性)和成员方法,成员变量用来描述类具有哪些性质,成员方法用来描述类可实现的功能

三、类的实例化

定义了一个类,就相当于在计算机中定义了一种新的类型,称为类类型,用类类型创建对象的过程称为类的实例化,我们用“ . ”符来访问对象中的属性和方法,同一个类可以创建多个对象

四、this的引用

1、this的作用

(1)区分出形参名与成员变量名

(2)当对象调用成员方法时,使成员方法明确要对哪个对象进行操作

注意:this只能在成员方法中使用且this只能引用当前对象

五、对象的构建及初始化

1、构造方法

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

特点:

(1)名字必须与类名相同

(2)无返回值类型(void也不行)

(3)在对象的生命周期内只调用一次(相当于人的出生只有一次)

(4)可以重载

(5)如果用户没有定义构造方法,编译器会自动生成一个无参的构造方法,但是只要用户定义了构造方法,编译器则不会再自动生成一个

(6)构造方法中可以用this()来调用其他的构造方法:

注意:this()要放在构造方法的第一行

2、默认初始化

与局部变量不同的是,即使成员变量不被初始化程序也不会报错,原因是系统检测到成员变量没有被初始化时,会给成员变量初始化一个默认的值,(int,byte,short)初始化为0;(long)初始化为0L;(char)初始化为'\u0000';(float)初始化为0.0F;(double)初始化为0.0;(boolean)初始化为false;(reference)引用类型初始化为null

六、封装

1、封装的概念

将数据和操作数据的方法进行有机结合,隐藏对象的属性和实现细节,仅对外公开接口来和对象进行交互

2访问限定符

Java中主要通过类和访问权限来实现封装:类可以将数据以及封装数据的方法结合在一起,更符合人类对事物的认 知,而访问权限用来控制方法或者字段能否直接在类外使用。Java中提供了四种访问限定符:

private:被限定的数据只能在同一类中使用

default:被限定的数据只能在同一中使用

protected:被限定的数据只能在同一包或不同包的子类中使用

public:可以任意使用

什么时候下用哪一种呢?

我们希望类要尽量做到"封装", 即隐藏内部实现细节, 只暴露出必要的信息给类的调用者.

因此我们在使用的时候应该尽可能的使用比较严格的访问权限. 例如如果一个方法能用 private, 就尽量不要用 public

我们也可以直接将所有成员变量设置为private,将所有成员方法设置为public(不推荐)

3、包

(1)概念

为了更好的管理类,将多个类收集成为一组,组成的这个整体我们称之为包

(2)导入包中的类

Java中有很多现成的类供我们使用,使用之前只需将所需要的类导入即可,Java中有两种导入类的方法

直接导入:

通过import语句导入:

import语句只能导入类,不能直接导入一整个包;可以使用import static导入包中静态的方法和字段

七、static成员

1、static修饰的成员变量

static修饰的成员变量,称为静态成员变量,也称为类变量,不初始化程序也会给一个默认值

静态成员变量特性:

(1)不属于某个具体的对象,是类的属性,所有对象共享的,不存储在某个对象的空间中

(2)既可以通过对象访问,也可以通过类名访问,但一般更推荐使用类名访问

(3)类变量存储在方法区当中

(4)生命周期伴随类的一生(即:随类的加载而创建,随类的卸载而销毁)

2、static修饰的成员方法

Java中,被static修饰的成员方法称为静态成员方法,是类的方法,不是某个对象所特有的。静态成员一般是通过静态方法来访问的

静态方法特性:

(1)不属于某个具体的对象,是类方法

(2)可以通过对象调用,也可以通过类名.静态方法名(...)方式调用,更推荐使用后者

(3)不能在静态方法中访问任何非静态成员变量

(4)静态方法中不能调用任何非静态方法,因为非静态方法有this参数,在静态方法中调用时候无法传递this引用

3、类变量初始化

类变量初始化有两种方式:

(1)就地初始化:定义时直接赋值

(2)静态代码块初始化:

八、代码块

常见的有两种:构造代码块和静态代码块,构造代码块也叫实例代码块

练习:

调用main方法,图中各步骤执行顺序为:

4 -> 1 -> 5 -> 6 -> 2 -> 3 

静态代码块先执行,并且只执行一次,在类加载阶段执行

当有对象创建时,才会执行实例代码块,实例代码块执行完成后,最后构造方法执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值