写出创建静态内部类对象的基本语法格式_面向对象(一)

d7282a6b5c4eb1b56afec1b4fb02b331.png

Java计算机高级语言

一.面向对象理论

1.对象

对象,是一个抽象概念,英文‘object’。表示任意存在属性的事物。世间万物皆对象!现实生活中随处可见的就是对象,对象是事物存在的实体。

通常将对象分为两个部分,即静态部分与动态部分,静态部分被称为“属性”,任何对象都具有自身属性,属性不仅是客观存在的,而且还是不被忽视的,例如人的性别。而动态部分是指对象的行为,即对象执行的动作,例如人的行走,跑步。

2.类

类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称为类。例如,把雁群比作大雁类,那么大雁类就具备喙,翅膀和爪等属性,觅食,飞行和睡觉等行为。

在Java语言中,类包括对象的属性和方法。类中的对象的属性是以成员变量的形式定义的,而行为则是以方法的形式定义的。

3.特点

面向对象的三大特点:

  • 封装性
  • 继承性
  • 多态性

1.封装

封装是面向对象的核心思想,即把对象的属性和行为封装成整体,其载体就是类,类通常会对客户隐藏其中的细节部分,这就是封装的思想。例如,用户使用计算机时,只需要移动鼠标操作键盘即可实现一些功能,而不是完全了解计算机是如何工作的。

封装思想保证了类内部数据的结构完整性,使用该类的用户不能轻易的直接操作此数据结构,只能操作允许公开的数据,这样就避免了外部操作对内部数据的影响,提高了程序代码的可维护性。

2.继承

矩形,菱形,平行四边形和梯形都是四边形,因为四边形与他们具有共同的特性:四条边。只要将四条边适当延申,就可以得到上述图形。Java中,可以把平行四边形类看作是继承了四边形类后产生的类,其中将类似于平行四边形这样的类统称为子类,将类似于四边形这样的类统称为父类,值得注意的是:在阐述平行四边形于四边形之间的关系时,可以说平行四边形是继承了四边形的属性而产生的特殊四边形。在Java中就可以理解为:子类的实例都是父类的实例,但不能说父类的实例是子类的实例。

综上所述,继承是实现重复利用的重要手段,子类继承父类,复用父类属性和行为的同时又添加了子类特有的属性和行为。

3.多态

将父类对象应用于子类的特征就是多态。例如,首先创建一个父类螺丝,螺丝类有两个属性:螺丝粗细及螺纹密度。在创建两个子类,长螺丝类和短螺丝类,它们都继承了螺丝类。这样长螺丝类与短螺丝类不仅具有相同的特征(粗细相同并且螺纹密度相同),还具备了不同的特征(长短不同)。综上所述,一个螺丝类衍生出不同的子类,而子类继承父类的特征时,也可以具备自己的特征,并且能够实现不同的效果,这就是多态的体现。

二.类与对象

1.成员变量

Java中对线的属性也成为成员变量,成员变量的定义与普通变量一样。语法如下:

数据类型 变量名 = 值;

其中,值表示可选,定义变量时可以直接赋值,也可也不为其赋值。

为了了解成员变量,首先定义各异鸟类--Brid类,成员变量对应类对象的属性,在Brid类中设置四个成员变量,分别是wing,claw,beak和feather,分别对应鸟的翅膀,爪子,喙和羽毛。代码如下:

8f2eb266e73672e446b4b2a4f015ba08.png

鸟类

以上代码可以看到在Java中使用class关键字来定义类,Brid是类的名称。同时在Brid类中定义四个成员变量,它的类型可以设置为Java中的合法的数据类型,其中成员变量就是普通变量,可以设置初始值,也可以不设置初始值。如果不设置初始值,则会有默认值。Java中常见类型的默认值如下所示

  • byte,short,int,long为0
  • fioat,double为0.0
  • char为 ’‘
  • boolean为false
  • 引用类型,例如String为null

2.成员方法

在Java语言中,成员方法对应类对象的行为,它主要用来定义类可执行的操作,它是包含一系列语句的代码块

1.成员方法的定义

定义成员方法的语法格式如下:

权限修饰符 返回值类型 方法名(参数类型 参数名)【throws 异常类型】{---方法主体return//返回值}

其中权限修饰符可以是private,public,protected中的任意一个,也可以不写,主要用来控制方法的访问权限,关于权限问题将在以后章节详细讲解;

返回值类型用来定义指定方法完成运行后返回数据的类型,可以是任何类型,如果方法不需要返回值,则用void关键字。

一个成员方法既可以有参数,也可以没有参数,参数可以是对象,也可以是基本数据类型的变量。

类如定义一个飞翔的方法在Brid类中,代码如下:

a71427218e49bc6c1efc1b9f2f967168.png

飞的方法

注:方法的定义必须在某个类中,定义的方法如果没用使用访问修饰符,那么则默认为缺省(即只能在本类的同一个包中的类中进行访问。)

如果方法设置有返回值,则使用return关键字返回一个指定类型的数据,并且返回值类型要与方法返回值的类型一致,如上代码所示。

2.成员方法的参数

调用方法时可以给该方法传递一个或多个值,传给放大的值叫做实参,在方法内部,接受参数的变量叫形参,形参的声明语法与变量的声明语法一样,形参只在方法内部有效。Java中方法的参数主要有三种,分别是值参数,引用参数和不定长参数

  • 值参数表明实参与形参之间按值传递。代码如下:
9bddd9df80c474a5225a2d94d2fa27b5.png

值参数

  • 引用参数表明参数类型时数组或其他引用类型。代码如下:
21af132f8a95a27079bd7ac69db494e8.png

引用参数

  • 不定长参数表明声明方法时,有若干个相同类型的参数,代码如下:
adc38c6a773e761a18bbe3f7977c5749.png

不定长参数

3.构造方法

在类中除了成员方法之外,还存在一种特殊类型的方法,那就是构造方法,构造方法是一个与类同名的方法,对象的创建就是通过构造方法完成的。每当类实例化一个对象时,类都会自动调用构造方法。

构造方法有如下几个特点:

  • 构造方法没有返回值类型,也不能定义为void。
  • 构造方法的名称与类名相同。
  • 构造方法的主要作用时完成对象的初始化工作,它能把定义对象的参数传给对象成员。

构造方法的定义语法如下:

class Book{public Book(){//构造方法}}

在构造方法中可以为成员变量赋值,这样实例化一个类的对象时,相应的成员变量也将被初始化。如果类中没有明确写出构造方法,那么编译时会自动使用一个不带参数的默认方法。代码如下:

ea8d37d71d4967a9b384ca1ad5bce5cd.png

无参构造方法

4.局部变量

如果在成员方法内部定义一个变量,那么这个变量被称为局部变量。

局部变量在方法执行时创建,在方法结束后销毁。局部变量在使用过程中必须进行赋值操作或被初始化,否则会出现编译问题。

1947d00b7b5509ffe8d416da1bfe4ef9.png

局部变量

5.this关键字

当类中的成员变量与成员方法中的参数重名时,方法中如何使用成员变量呢?首先来看一下重名会发生哪些问题。

5112c2f04943c4b450957b79f2e5cde0.png

变量名相同

Java语言中规定使用this关键字来代表本类对象的引用,this关键字被隐式地用于引用对象的成员变量和方法。代码如下:

dc88163dba6933dc7c6e5bd065a19c8e.png

三.static关键字

1.静态变量

很多时候,不同的类之间需要对同一个变量进行操作,例如水池,初始化为0,然后同时打开放水管及排水管两个操作,会不同程度影响水池中的水量,这时就可以水池的中的水量可以认为是一个共享变量。在Java中如果把共享变量用static修饰,那么该变量就是静态变量。代码语法如下:

public static int water = 0;

2.静态方法

如果想要使用类中的成员方法,需要先将这个类进行实例化,但是有些时候不想或者无法创建类的对象时,还想要调用类中的方法才能够完成业务逻辑,这种情况就可以使用静态方法。代码语法如下:

public static void name() {}

3.静态代码块

在类的成员方法之外,用static修饰代码区域可以称之为静态代码块,定义一块静态代码块,可以完成类的初始化操作,在类声明时就运行,代码语法如下:

public class Pool {static {//此处编辑执行语句}}

四.类的主方法

主方法时程序的入口点,它指定了程序是从何处开始,提供了程序的流向控制,Java编译器通过main方法来执行程序,语法如下:

public static void main(String[] args) {}
  • 主方法是静态的,如果要在主方法直接调用其他方法,也必须是静态方法。
  • 主方法没用返回值
  • 主方法的形参为数组,可以使用.length来获取参数个数

以上就是我们第四章Java面向对象的第一小节,感谢读者翻阅,辛苦小伙伴点个赞哦。

67695d6306cba02cc7b6f9cb5f069c01.png

真男人感谢您的点赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值