Day06
----------------------------------------------------------------------------------
今天内容:
(1)二维数组
(2)面向对象编程的概念
(3)类、对象以及引用
(4)成员方法
1.二维数组(熟悉)
1.1 基本概念
一维数组本质上就是一段连续的存储单元,用于记录多个类型相同的数据内容。
二维数组本质上就是由一维数组组成的数组,也就是二维数组的每个元素都是一维数组,换句话说,二维数组就是由多个一维数组摞起来的数组。
1.2 声明方式
(1)语法格式
数据类型[][] 数组名称 = new 数据类型[行数][列数];
如:
int[][] arr = new int[2][3]; - 声明一个具有2行3列的二维数组
(2)元素的初始化
数据类型[][] 数组名称 = {{初始值1,初始值2, ...}, ...};
如:
int[][] arr = {{1, 2, 3}, {4, 5, 6}}; - 声明一个具有2行3列的二维数组并指定初始值
2.面向对象编程的概念(熟悉)
2.1 什么是对象?
万物皆对象。
2.2 什么是面向对象?
面向对象主要指以特征和行为的观点分析现实世界中事物的方式。
2.3 什么是面向对象编程?
面向对象编程就是指先使用面向对象的观点进行分析,再使用面向对象的编程语言进行翻译的过程。
其中C语言是一门面向过程的编程语言;
其中C++语言是一门既面向过程又面向对象的编程语言;
其中Java语言是一门纯面向对象的编程语言;
2.4 为什么需要面向对象编程?
面向对象编程是软件产业化发展的需求。
2.5 如何学好面向对象编程?
深刻理解和掌握面向对象编程的三大特性:封装、继承、多态。
3.类和对象以及引用(重中之重、抽象、难点)
3.1 基本概念
对象主要指现实生活中客观存在的实体,在Java语言中体现为内存中的一块存储空间。
类简单来说就是"分类",是具有相同特征和行为的多个对象共性的提取和抽象描述,在Java语言中称为引用数据类型,里面包含了描述特征的成员变量和描述行为的成员方法组成。
如:
String name1 = "张三"; int age1 = 20; ...
String name2 = "李四"; int age2 = 18; ...
String name3 = "王五"; int age3 = 21; ...
... ...
人类:
特征:姓名、年龄
行为:吃饭、娱乐
3.2 类的定义
(1)类定义的语法格式
class 类名{
类体;
}
如:
class Person{
}
注意:
通常情况下,当类名由多个单词组成时,要求每个单词的首字母都要大写。
(2)成员变量定义的语法格式
class 类名{
数据类型 成员变量名 = 初始值; - 其中=初始值可以省略,但分号不可以省略。
}
如:
class Person{
String name;
int age;
}
注意:
通常情况下,当成员变量名由多个单词组成时,要求从第二个单词起首字母大写。
扩展:
局部变量 - 主要指声明在方法体内的变量,该变量从声明开始到方法体结束都有效。
成员变量 - 主要指声明在类体中方法体外的变量,从声明开始到类体结束都有效。
3.3 对象的创建
(1)语法格式
new 类名();
如:
new Person(); - 表示创建Person类型的对象
(2)注意事项
当类定义完毕后,使用new关键字创建对象的过程,叫做类的实例化,而创建对象的本质就是在内存空间中申请一块独立的存储区域用于记录该对象独有的特征信息。
3.4 引用的定义
(1)基本概念
在Java语言中使用引用数据类型声明的变量叫做 引用型变量,简称为"引用"。
引用主要用于记录对象在堆区中的内存地址信息,便于下次访问。
(2)语法格式
类名 引用变量名;
如:
Person p; - 定义/声明一个Person类型的引用,名字叫做p
Person p = new Person(); - 声明Person类型的引用p指向Person类型的对象
引用变量名.成员变量名;
如:
p.name = "zhangfei"; - 根据p变量记录的地址将成员变量name的数值修改为"zhangfei"
练习:
自定义Point类,特征:横坐标和纵坐标(整数x y),在main()方法中使用Point类型的引用指向Point类型的对象,打印横纵坐标的默认值,然后将横纵坐标修改为3和5,最后再次打印。
4.成员方法(重中之重、难点)
4.1 语法格式
class 类名{
返回值类型 成员方法名(形参列表){
成员方法体;
}
}
如:
class Person{
void show(){
System.out.println("没事出来秀一下!");
}
}
注意:
通常情况下,当成员方法名由多个单词组成时,要求从第二个单词起首字母大写。
4.2 方法的详解
(1)返回值类型
返回值主要指从方法体内向方法体外返回的数据内容。
返回值类型主要指返回值的数据类型,可以是基本数据类型,也可以是引用数据类型。
如:
当返回的数据内容为66时,则返回值类型写为int类型即可;
当返回的数据内容为3.14时,则返回值类型写为double类型即可;
当返回的数据内容为"hello"时,则返回值类型写为String类型即可;
在方法体中使用return关键字可以返回具体的数据内容并结束当前方法。
如:
return 66; return 3.14; return num;
当方法体中没有需要返回的数据内容时,则返回值类型写为void即可。
(2)形参列表
形式参数主要用于从方法体外向方法体内带入数据内容。
形参列表就是指多个形式参数,具体语法格式为:数据类型 形参变量名1, ...
如:
当传入的数据内容为66时,则形参列表写为:int i即可;
当传入的数据内容为3.14时,则形参列表写为:double d即可;
当传入的数据内容为"hello"时,则形参列表写为:String s即可;
当传入的数据内容为66和3.14时,则形参列表写为:int i, double d即可;
当传入的数据内容为66和"hello"时,则形参列表写为:int i, String s即可;
当不需要传入任何数据内容时,则形参列表位置啥也不写即可;
(3)成员方法体
成员方法体主要用于编写描述该方法功能的语句;
如:
当该方法的功能是用于打印一句话,则方法体写 System.out.println("");即可;
4.3 方法的调用
(1)语法格式
引用变量名.成员方法名(实参列表);
如:
p.show();
(2)注意事项
实际参数列表主要用于给形式参数列表进行初始化工作,因此实参个数、类型、顺序等都必须与形参保持一致,实参列表可以传递直接量、变量、表达式以及方法的调用等。
作业:
1.要求重点理解Person.java文件的代码,至少敲20遍。
2.自定义Phone类,特征有:品牌和价格,行为有:打印品牌和价格的方法、设置品牌为参数指定的数值、设置价格为参数指定的数值、获取品牌的数值并返回、获取价格的数值并返回
要求在main()方法使用Phone类型的引用指向Phone类型的对象,调用上述方法进行测试。