首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java基础篇——类和对象

Java是面向对象的程序设计语言,那什么是面向对象程序设计呢?面向对象程序设计就是通过对象来进行程序设计。那什么又是对象呢?我们必须要先了解一下类的概念。

什么是类

类是一个抽象的概念集合,表示对事物的描述,是具备某些共同特征的实体的集合,它是一种抽象的数据类型,是对一类“事物”的属性和行为的描述。

例如,每个人都有共同的属性(姓名,性别,年龄,身高,体重,爱好……),也有共同的行为(吃饭,睡觉,说话……),这时,就可以定义一个Person类来表示一个“人”这个“事物”,在Person类中有属性和行为(方法)的定义。

什么是对象

对象是类的一个实例,它是一个具体的概念。例如,现在有一个Person类,它可以有多个实例,比如张三,李四等等,每一个实例都是一个对象,所以,对象表示的是一个具体的概念。同一个类的多个对象,每个对象都有自己独立的属性,依靠属性来区分不同对象。

到这里,类和对象的区别已经很明显了:类就是模版,对象就是用模版创造出来的东西。

类的定义

在Java中,使用关键字 class 声明一个类,其格式为:

含有class的这一行称为类头,后面大括号括住的部分称为类体。class前的修饰符可以有多个,用来限定所定义的类的访问权限,修饰符的类型及其作用下面会说。类名是用户为该类所起的名字。extends是关键字,表示这个类是从一个父类继承而来,如果没有父类,则不需要extends。

类定义中的成员变量可以有多个,成员变量前面的类型是该变量的类型,既可以是 8 种基本数据类型,也可以是类、数组等引用数据类型。

成员方法也可以有多个,其前面的类型是方法返回值的类型。如果没有返回值,则写 void。方法体是要执行的真正语句。在方法体中,还可以定义该方法内使用的局部变量,局部变量只在该方法内部有效。方法的参数列表可以含有多个参数,也可以不带参数,每个参数前面要指定该参数的类型,多个参数之间用逗号“,”分隔。

下面定义一个Person类:

修饰符

修饰符包括:public、protected、private,也可以不写(表示默认修饰符)。它们既可以用来修饰类,又可以修饰类中的成员变量和成员方法。修饰符决定了所修饰的类或成员在程序运行时被访问的权限。

public:修饰的成员表示是公有的,可以被其他任何对象访问。

protected:修饰的成员是受保护的,只可以被同一包下及其子类的实例对象访问。

private:类中限定为private的成员只能在这个类内部访问,在类外不可见。

不写任何修饰符:表明是默认的,相应的成员可以被同一包下的各类访问。

静态成员

在类的定义中还可以定义一种特殊的成员,用 static 修饰,称为静态成员或类成员,包括静态变量和静态方法。静态成员是不依赖于特定对象的内容。

Java运行中系统生成类的每个实例对象时,会为每个对象的实例变量分配内存,然后才可以访问对象的成员,而且不同的对象的内存空间相互独立,也就是说对于不同对象的成员,其内存地址是不同的。但是如果类中存在静态成员,则系统只在类定义时为静态成员分配内存,此时还没有创建对象,也没有对对象进行实例化。以后生成该类的实例对象时,将不再为静态成员分配内存,不同对象的静态变量将共享同一块内存空间。

类的创建和初始化

定义好一个类之后,是不能直接使用的,必须要创建一个该类的对象,才能通过对象来操作属性和方法。Java通常使用构造方法来创建一个类的对象。

构造方法是一类特殊的方法,它的名字与类名相同,没有返回值,在创建对象实例时通过 new 运算符自动调用。一个类可以有多个具有不同参数列表的构造方法,即构造方法可以重载。

方法重载:方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数。 Java的方法重载,就是在类中可以创建多个方法,它们可以有相同的名字,但必须具有不同的参数,即或者是参数的个数不同,或者是参数的类型不同。调用方法时通过传递给它们的不同个数和类型的参数,以及传入参数的顺序来决定具体使用哪个方法。

每个类都必须至少有一个构造方法,如果程序员没有为类定义构造方法,系统会自动为该类生成一个默认的构造方法,默认构造方法的参数列表及方法体均为空,所生成对象的各属性值也都是其默认值。如果类定义中已经含有了一个或多个构造方法,则系统不会再自动生成默认构造方法了。

下面就是使用构造方法创建对象并使用的例子:

点个关注吧,我会持续更新,下期更精彩哦~~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200223A0E4GY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券