JAVA——类和对象

一、类和对象的概念

JAVA中的类和对象类似于c语言中的结构体,都是自定义类型。

区别在于,类中是可以存放方法(函数)的,而c语言中的结构体只能存储变量

类,是自己创建的类型。里面可以存放很多变量、方法、代码块。类是对象的模板

创建了类后,就可以以类为模板创造对象。这个过程我们也可以叫做类的实例化。

用同一个类创建多个对象时,这几个这几个对象中存储的变量数、变量名称、方法数即方法名称都是相同的,但它们当中存储的数据不同

二、类的创建

在JAVA中,我们可以用class关键字创建一个新的类

这样我们就创建好了一个新的类,这个类的名称是Student。

接下来,我们为这个Student类中加入一些变量

现在Student类中有了姓名、年龄、体重、成绩这几个变量了

三、创建对象

只有类是不够的,类只是一个模板。真正能存储数据的,是对象。

现在我们创建一个类型为Student的对象

我们创建了一个类型为Student,名称为student的对象。现在我们可以在这个对象中存储数据了

当我们要操作对象中的变量或方法时,我们使用:   对象名.变量名

四、类的成员方法

类中可以有变量,也可以有方法

这里定义了一个test方法,它的功能是输出某某某正在考试,然后随机生成一个100以内的成绩,并赋值给当前对象的grade变量。

这里的this就是当前对象的意思。假设有多个Student类型的对象,那么哪个对象调用的test,这里的this就指那个对象

我们看看调用test方法的结果

test方法成功地将student对象中的grade赋值为了97

五、类的构造方法

构造方法,是类中一种比较特殊的方法

1、构造方法是没有返回值的

2、构造方法的调用时机也比较讲究,只能在实例化对象时调用

3、构造方法的方法名必须 与当前类的类名相同

构造方法实际上就是,在创建对象时可以同时对对象进行初始化的方法

接下来我们为Student类创造一个构造方法

这就是一个构造函数,我们可以通过它来初始化函数

这是构造函数的用法,即在创建变量时的括号内,按顺序写入要初始化的变量值

构造函数也是可以重载的,比如我们可以创建一个不带变量的构造函数

实际上,每次实例化对象时,都一定要使用构造函数的。

那我们之前没有构造函数,实例化对象时,编译器为什么不报错呢?

原因是:当我们自己连一个构造函数都没有写的时候,编译器会为我们写一个没有参数的构造函数。这个构造函数是隐藏的,也没有实际作用。但它可以解决没有构造函数无法通过编译的问题

六、类的封装

类和对象有一个三个很重要的性质,分别是:封装、继承、多态

在这个博客里,我们先讲封装

封装,顾名思义,就是将类中的某些东西封存起来,不让外界使用

我们可以使用private关键字对类中的变量或方法进行封装

当我们之前在对象中创建变量时,前面总有一个public关键字

public:公共的,   private:私人的

这两个关键字是相对的,用public修饰的变量或方法,在程序的任何地方都可以访问。用private修饰的变量,只有在类和对象的内部才可以访问。

这样我们就将Student类中的这几个变量封装起来了。

当我们再次企图在外界访问这几个变量时:

编译器报错了,外界是没有这几个变量的访问权限的。

如果我们还是想修改或取出这几个变量中存储的数据,可以用创建成员方法的方式。

这两个成员函数,一个可以用来修改age中存放的值,一个可以用来取出age中存放的值

七、static修饰变量和方法 

static用于修饰类中的变量和方法,可使变量和方法成为静态的

通俗点来说,static修饰的变量,不是属于某个对象的,而是属于类的,是所有该类型的对象 所共有的。

当我们要访问static修饰的变量或方法时,一般通过:   类名.变量名

需要注意的是,静态的方法中只能使用静态的变量,不能使用非静态的变量。

因为非静态的变量是存在与对象中的,而静态的方法是由类来调用的,此时没有对象存在。

了解了static关键字后,我们或许可以理解Arrays和Scanner在使用时的差异了

Scanner中的nextInt方法在用时需要实例化一个Scanner类的对象,然后通过对象使用

而Arrays中的toString方法只需要通过类名使用就可以 

这正是因为:nextInt方法是非静态方法,而toString方法是静态方法

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值