昨日内容回顾
debug
是idea的一种操作方法,可以让我们逐行执行代码,观察代码执行流程和变量变化;
使用步骤
- 打断点 哪里不会点哪里
- 以debug模式启动
- 观察代码执行顺序和变量变化
二维数组
概述
在一个数组的里面保存了多个其他数组;
动态初始化
数据类型[][] 数组名 = new 数据类型[二维数组长度][一维数组长度];
其中一维数组长度可以省略,如果省略了,java不会帮我们把一维数组创建出来,需要我们自己手动创建一维数组,然后再将创建好的一维数组保存到二维数组中;好处是可以让每一个一维数组的长度不一样;
静态初始化
数据类型[][] 数组名 = {{数据},{}};
操作
通过数组名配合索引号进行操作,从二维数组中获取出来的都是一维数组,需要再次跟进一维数组的索引才能操作具体的数据值;
今天内容讲解
面向对象
概述
面向对象
偷懒,有事找别人干!我们仅仅指挥即可;强调的是对象;
面向过程
亲力亲为;一步一步的完成功能;强调的是每一个步骤;
面向对象的特点
- 面向对象是基于面向过程的!
类
类是现实生活中一类事物的描述;(群体概念,抽象的,不具体的东西)
可以理解为生活中的:图纸,模板,模具...
对象
实体,生活中实实在在存在的物件,就是对象;
类与对象的关系
类是java中的引用数据类型;一个类可以创建出很多对象;
对象是类的体现;(我们真正想要的就是对象,但是在java中,为了得到对象,不得不先编写类)
类的定义格式
组成部分
-
成员变量
在类中直接定义的变量;
-
成员方法
在类中写的不带static的方法就是成员方法;
(凡是描述类(图纸)的方法,都不带static,凡是在测试类(测试图纸类是否正确的类)中写的方法都带static)
对象的使用
创建对象
类名 对象名 = new 类名();
使用成员变量(了解)
存:
对象名.成员变量名 = 数据值;
取:
对象名.成员变量名;
使用成员方法
对象名.方法名(实参);
面向对象的代码套路
- 编写图纸类
- 成员变量
- 成员方法
- 编写测试类
- 创建对象
- 面向对象,操作成员变量
- 面向对象,操作成员方法
内存
单个对象的内存
每个对象都有自己的空间,在空间内每个对象都保存着自己的成员变量的值,但是成员方法仅仅保存了一个地址值而已;
成员变量和局部变量的区分
private关键字
this
成员变量和局部变量能否重名吗?
可以
如果能,那么重名之后,如何区分呢?
使用this关键字进行区分
this概述
this表示当前对象,谁正在调用方法,this就表示谁;(哪个对象正在调用方法,this就表示那个对象)
语法格式
this.变量名 表示的一定是成员变量
变量名 如果有局部变量,就表示局部变量,如果没有局部变量,依然表示成员变量;(就近原则)
封装
构造方法
概念
创建对象的时候,需要执行的方法就是构造方法;
语法格式
public 类名(形参){
希望创建对象的过程中,干什么事情;
}
执行时机
每次创建对象,都会执行一次;
而且无法通过已经创建好的对象,调用构造方法;
特点
构造方法的作用
- 主要作用是用于创建对象的,如果一个类中,没有可用的构造方法,那么就意味着我们无法在外界创建这个类的对象;
- 可以结合构造方法的执行时机,在构造方法创建对象的过程中,给成员变量赋值;
构造方法注意事项
javaBean
概述
专门用于封装数据的类就是javaBean,里面会包含私有的成员变量,成员方法,构造方法;
快捷键
-
alt+insert( +Fn )
-
选择生成构造方法或getter和setter方法
3: 在第一步弹出的菜单中,直接选择"getter and setter",即可生成getter和setter方法;