JAVA学习第四节

JAVA学习第四节

一.类和对象
1.理解面向对象程序设计

面向对象程序设计,是现实世界模型的自然延伸。现实世界中的任何实体都可归属于某类事物,任何对象都是某一类事物的实例。
结构化程序设计方法可以用一句话概括:程序 = 算法 + 数据结构,
这里的“算法”可以用顺序、选择、循环这三种基本控制结构来实现。
例如,在现实世界中桌子代表了所有具有桌子特征的事物,人类代表了所有具有人特征的生物。这个事物的类别映射到计算机程序中,就是面向对象中“类(class)”的概念。
面向对象的程序设计的3个主要特征:封装性、继承性、多态性。
封装的目的在于把对象的设计者和对象的使用者分开,使用者不必知晓其行为实现的细节,只须用设计者提供的消息来访问该对象。
继承性:继承性是子类共享其父类数据和方法的机制,类)和多重继承(一个类有多个父类)。类的对象是各自封闭的,如果没继承性机制,则类的对象中的数据、方法就会出现大量重复。
多态性:对象根据所接收的消息而做出动作。同一消息被不同的对象接受时可产生完全不同的行动,这种现象称为多态性。
2.面向对象的基本概念
(1)类:将具有相同属性及相同行为的一组对象称为类(class)。 “人”
(2)对象:对象(object)是类的实例化后的产物。 “人的名字:张三”
(3)类和对象的关系
类描述了对象的属性和对象的行为,类是对象的模板。对象是类的实例,是一个实实在在的个体,一个类可以对应多个对象。
3.类的声明与定义
(1)类的声明

类声明的语法:
[标识符] class 类名称
{
//类的成员变量
//类的方法
}
声明类使用的是class关键字。声明一个类时,在class关键字后面加上类的名称,这样就创建了一个类,然后在类的里面定义成员变量和方法。
(2)类的定义
定义类的语法:
class类名称
{
数据类型 属性; //零到多个属性
类名称(参数,…) //零到多个构造方法
{
}
返回值的数据类型 方法名称(参数1,参数2…) //零到多个方法
{
程序语句;
return表达式;
}
}
定义一个类后,就可以创建类的实例了,创建类实例通过new关键字完成。
3.类的属性
类的基本组成部分包括属性和方法,方法就是解决一类问题的步骤的有序组合。
(1)属性的定义:
[修饰符] 属性类型 属性名 [=默认值]
说明:
⑴ 修饰符:修饰符可省略,也可是访问控制符public、protected、private及static、final,其中三个访问控制符public、protected和private只能使用其中之一, static和final则可组合起来修饰属性。
⑵ 属性类型:属性类型可以是Java允许的任何数据类型,包括基本类型(int、float等)和引用类型(类、数组、接口等)。
⑶ 属性名:从语法角度来说,属性名则只要是一个合法的标识符即可。但如果从程序可读性角度来看,属性名应该由一个或多个有意义的单词(或能见名知意的简写)连缀而成,推荐的风格是第一个单词应以小写字母作为开头,后面的单词则用大写字母开头,其他字母全部小写,单词间不使用其他分隔符。如:String studentNumber;
⑷ 默认值:定义属性还可以定义一个可选的默认值。
4.对象的声明与使用
(1)对象的声明

类对象名=new类名();
&声明指向“由类所创建的对象”的变量。
&利用new创建新的对象,并指派给先前所创建的变量。
!!!对象只有在实例化之后才能被使用,而实例化对象的关键字就是new。
(2)对象的使用
语法:
对象名称.属性名 //访问属性
对象名称.方法名() //访问方法
对于对象属性和方法点操作符“.”,建议直接读成 “的”,例如,p1.name = “张三”,可以读成“p1的name被赋值为张三”。
(3)对象的比较
有两种方式可用于对象间的比较。(1)利用“”运算符;(2)利用equals()方法。“”运算符用于比较两个对象的内存地址值(引用值)是否相等,equals()方法用于比较两个对象的内容是否一致。
二.重复调用的代码块—方法
在本质上,一个类描述了两件事情。⑴ 一个对象知道什么(what’s an object knows)? ⑵ 一个对象能做什么(what’s an object does)?第1件事情对应于对象的属性(或状态)。第2件事情对应于对象的行为(或方法)。
1.方法的基本定义
方法(method)用来实现类的行为。一个方法通常是用来完成一项具体的功能(function),所以方法在C++中也称为成员函数(member function)。英文“function”的这两层含义(函数与功能)在这里都能得到体现。
所有方法均在类中定义和声明,构成方法有四大要素。返回值类型、方法名称、参数、方法体。
(1)定义方法的语法:
修饰符 返回值类型 方法名 (参数列表)
{
//方法体
return 返回值
}
【注意】:方法包含一个方法头(method header)和一个方法体。方法头包括修饰符、返回值类型、方法名和参数列表等。
修饰符(modifier):定义了该方法的访问类型。这是可选的,它告诉编译器以什么调用该方法。
返回值类型(return type):指定了方法返回的数据类型。它可以是任意有效的类型,包括构造类型(类就是一种构造类型)。如果方法没有返回值,则其返回类型必须是void。方法体中的返回值类型要与方法头中定义的返回值类型一致。

在这里插入图片描述方法名(method name):方法名称的命名规则遵循Java标识符命名规范,但通常方法名以英文中的动词开头。这个名字可以是任意合法标识符。
参数列表(parameter list):参数列表是由类型、标识符组成的序列,每对之间用逗号分开。参数实际上是方法被调用时接收传递过来的参数值的变量。如果方法没有参数,那么参数表为空的,但是圆括号不能省略。参数列表可将该方法需要的一些必要的数据传给该方法。方法名和参数列表共同构成方法签名,一起来标识方法的身份信息。
方法体(body):方法体中存放的是封装在{}内部的逻辑语句,用以完成一定的功能。
2 .方法中的形参与实参
如果有传递消息的需要,在定义一个方法时,参数列表中的参数个数至少为1个,有了这样的参数才有提供外部传递消息至本方法的可能。这些参数被称为形式参数,简称形参(parameter)。 而在调用这个方法时,需要调用者提供与原方法定义相匹配的参数(类型、数量及顺序都一致),这些实际调用时提供的参数称为实际参数,简称实参(argument)。
在这里插入图片描述3.构造方法
1. 对象声明并实例化的格式:
类名称 对象名称=new类名称();
⑴ 类名称:表示要定义变量的类型,只是有了类之后,变量的类型是由用户自己定义的;
⑵ 对象名称:表示变量的名称,变量的命名规范与方法相同,例如:studentName;
⑶ new:是作为开辟堆内存的唯一方法,表示实例化对象;
⑷ 类名称():这就是一个构造方法。
2. 在使用构造方法的时候需注意以下几点。
⑴ 构造方法名称和其所属的类名必须保持一致。
⑵ 构造方法没有返回值,也不可以使用void。
⑶ 构造方法也可以向普通方法一样被重载。
⑷ 构造方法不能被static和final修饰。
⑸ 构造方法不能被继承,子类使用父类的构造方法需要使用super关键字。
3. 代码块
代码块:代码块是一种常见的代码形式。它用大括号“{ }”将多行代码封装在一起,形成一个独立的代码区域,这就构成了代码块。代码块的格式如下。
{
//代码块
}
代码块有三种。⑴ 普通代码块。⑵ 构造代码块。⑶ 静态代码块。
(1)普通代码块

在方法名后(或方法体内)用一对“{ }”括起来的数据块就是普通代码块。它不能够单独存在于类中,需要紧跟在方法名后面,并通过方法调用。
( 2 ) 构造代码块
构造代码块就是在类中直接定义的,且没有任何前缀、后缀以及修饰符的代码块。
(2)静态代码块

使用static关键字加以修饰并用大括号“{ }”括起来的代码块称为静态代码块,其主要用来初始化静态成员变量。它是最早执行的代码块。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值