二维数组(理解)
(1)元素是一维数组的数组。
(2)格式:
A:数据类型[][] 数组名 = new 数据类型[m][n];
B:数据类型[][] 数组名 = new 数据类型[m][];
C:数据类型[][] 数组名 = new 数据类型[][]{{…},{…},{…}};
D:数据类型[][] 数组名 = {{…},{…},{…}};
2:两个思考题(理解)
(1)Java中的参数传递问题
Java中只有值传递。
基本类型:形式参数的改变不影响实际参数
引用类型:形式参数的改变直接影响实际参数
(2)数据加密问题
综合的小案例。
面向对象(掌握)
编程思想:
面向过程:注重过程,当完成某个功能的时候,必须清楚每一个步骤,然后按照步骤一步一步执行
面向对象:是一种编程思想,以对象为基础完成各种操作,强调的是对象。它是基于面向过程的
注意:
java是面向对象的语言,在java中万物皆对象
类:
概述:类是用来描述现实事物的,由属性和行为组成
- 属性:就是该事物的状态信息。
- 行为:就是该事物能够做什么
学生类:
属性:姓名,年龄,学号,成绩
行为:学习,吃,喝,拉,撒
猫类:
属性:颜色,体重,年龄
行为:抓老鼠,吃,睡
对象:
概述:对象是一类事物的具体体现,对象是类的一个实例,必然具备该类事物的属性和行为。
学生对象: 张三学员
属性:张三,18,2,98
行为:张三正在学习java,张三正在吃米饭,张三正在喝可乐,…
猫对象: 你家的那只猫
属性:黄色,3kg,2岁
行为:猫正在房间抓老鼠,猫正在吃鱼,猫正在床上睡觉
举例子:
自行车: 类
膜拜单车: 类
上海牌的单车:类
你早上骑的那辆膜拜单车:对象
对象和类之间的关系:
对象是根据类来创建的,类中有什么,对象就有什么
定义一个类来描述学生事物,由属性和行为组成:
类名:学生类
属性: 姓名,年龄,学号,成绩
行为: 学习,吃,睡
定义类的格式:
public class 类名{
成员变量(属性);
成员方法(行为);
}
成员变量:对应事物的属性
成员方法:对应事物的行为
- 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
- 成员方法:和以前定义方法几乎是一样的。只不过把static去掉,static的作用在面向对象后面课程中再详细讲解
创建对象:
格式: 类名 对象名 = new 类名();
对象的使用:
访问成员变量: 对象名.成员变量名
访问成员方法(调用成员方法): 对象名.方法名(实际参数);
如果成员方法没有返回值: 直接调用 对象名.方法名(实际参数);
如果成员方法有返回值:
直接调用 对象名.方法名(实际参数);
输出调用 输出语句System.out.println(对象名.方法名(实际参数));
赋值调用 数据类型 变量名 = 对象名.方法名(实际参数);
匿名对象:没有名字的对象就是匿名对象
作用:当对对象方法仅调用一次的时候
匿名对象可以作为实际参数进行传递
注意:
成员变量会有默认值,默认值分别是:
整数类型默认值是0
小数类型默认值是0.0
字符类型默认值是’\u0000’
布尔类型默认值是false
引用数据类型默认值是 null
成员变量和局部变量区别:
-
在类中的位置不同 重点
-
成员变量:类中,方法外
-
局部变量:方法中或者方法声明上(形式参数)
-
作用范围不一样 重点
-
成员变量:类中
-
局部变量:方法中
-
初始化值的不同 重点
-
成员变量:有默认值
-
局部变量:没有默认值。必须先定义,赋值,最后使用
-
在内存中的位置不同 了解
-
成员变量:堆内存
-
局部变量:栈内存
-
生命周期不同 了解
-
成员变量:随着对象的创建而存在,随着对象的消失而消失
-
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
面向对象有三大特点: 封装,继承,多态
封装:其实就是对一些细节进行隐藏,对外界不可见
java中封装的体现:
1.方法其实就是一种封装
2.private也是一种封装
好处:隐藏实现细节,提供公共的访问方法
提高了代码的复用性
提高安全性
权限: private < 默认 < protected < public
private关键字:
- private是一个权限修饰符,代表最小权限。
- 可以修饰成员变量和成员方法。
- 被private修饰后的成员变量和成员方法,只在本类中才能访问。
private 修饰成员变量:
格式: private 数据类型 成员变量名;
private 修饰成员方法:
把public关键字 改成 private关键字
对属性的封装:
- 使用 private 关键字来修饰成员变量,来达到隐藏属性的目的
- 对需要访问的成员变量,提供公共的访问方式,也就是定义 getXxx方法 、setXxx 方法。
set方法:
一定是一个公共的方法
一定没有返回值
方法名一定是set+属性名,并且属性名首个字母要大写
一定参数,参数的类型和参数名要和属性的类型和属性名一致
一定会给属性赋值
get方法:
一定是一个公共的方法
一定会有返回值,并且返回值的类型和属性的类型一致
一定没有参数
一定会把属性值返回回去
this
this代表所在类的当前对象的引用(地址值),即对象自己的引用。
this使用格式
this.成员变量名;
例如:
public class 类名 {
private 数据类型 成员变量名;
public void set方法名(参数类型 参数名) {
//name = name;
this.成员变量名 = 参数名;
}
public 返回类型 get方法名() {
return 成员变量名;
}
}
快捷键:
快速生成set/get方法 : alt+insert
构造方法:
概述:当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。
作用: 创建对象,给对象的成员变量赋初始值
如何调用:通过new 调用 , 一旦定义好一个构造函数,创建对象时就会自动调用它。
定义构造方法的格式:
默认(空参\无参)构造方法:
public 类名(){
}
有参构造方法:
public 类名(参数列表){
给成员变量赋值
}
注意:
- 如果一个类没有定义构造方法,那么系统会自动生成一个默认的空参构造方法
- 构造方法是没有返回值类型的,连void都没有
- 如果类中自定义了构造方法,那么系统就不会自动生成一个默认的空参构造方法
- 构造方法是可以重载的
标准代码:
public class ClassName{
//成员变量
//构造方法
//无参构造方法【必须】
//有参构造方法【建议】
//成员方法
//getXxx()
//setXxx() }