一、内容概述
1、类(引用数据类型)Random、Scanner
2、ArrayList 集合(数组)
3、练习
4、面向对象
二、类(引用数据类型)
类的类型有两种方式:
1)人家定义好的类,我们可以通过导包的方式,将对应的类引入到当前程序中进行使用。、
import java.util.Scanner; import java.util.Random;
import java.util.*;
2)如果业务上需要使用自定义的信息,我们可以自己来定义一个类。
如果要实现某些功能的话,至少要包含方法。
如果有一些固定或者变动的值需要拿来处理,则可以使用属性进行定义。
类:手机。很有钱,买 iphoneX
方法:炫耀、打电话、微信、拍照、听歌、看视频、游戏……
属性:显示屏、电池、蓝牙、陀螺仪、摄像头、扩音器……
// 定义一个类
public class 类名 {
// 定义字段 field
int a = 1;
// 定义方法(无返回值)
public void getName(){
}
// 定义方法(有返回值)
public String getName(){
return “”;
}
}
// 类的使用:如果你要用它,必须要拿到一个类的实例。
// 其实,就是我们需要将类放到堆内存中,别人才可以拿来用。
// 只要你使用一个 new 关键字,就可以在堆内存中开辟一个空间,存放类的实例。
类类型 变量名 = new 类名();
// 类类型:其实就是类名,只不过此处只是用来声明变量的类型而已,跟外界说,当前变量的类型是和我某个类的类型一致的。
User user = new User();
// 手机:锤子手机
// 获取锤子手机的实例
JianGuo jg = new JianGuo();
// 如果我们想要去看某个类的信息,可以调用其属性值来查看
// 去看看你电池的信息
String dianchiInfo = jg.getDianChi(); // getXxx 获取xxx setXxx 设置xxx
// 如果要使用某个类的功能,则调用它的方法并执行
// 打电话:true false
boolean flag = jg.phone();
// 但有时候,我们只需要进行通话
jg.phone();
------------------- 练习--------------------------
1. 定义一个类。
2. 给这个类指定属性。
3. 给这个类指定方法。
车、电饭煲、冰箱、电脑
// ctrl + shift + f 快速格式化代码
三、ArrayList 集合
数组:用来存储多个数据。
int[] aa = {23, 44, 56};
// 我已经有三个元素
// 我的长度是 3
当我们需要动态添加数据的时候,数组是完成不了。
数组:58
集合:58 +1 +1
如果碰到需要动态添加数据的时候,可以考虑使用集合的方式。
菱形语法:其实就是由 < 和 > 组合而成的,形状像菱形。
作用:主要用于告诉人家,当前的集合主要放了哪些类型的数据。
比如,ArrayList<Student> 是告诉人家集合中都是 Student 类型数据。
// ArrayList 集合的使用
// 1. 导包:import java.util.ArrayList;
// 2. 初始化实例:new ArrayList<类类型>();
集合中菱形语法中指定的泛型类型可以有:
1. 基本数据类型:int、double、long
2. 引用数据类型:String、Integer、Double
3. 自定义类类型:Student、User
四、面向对象
4.1 面向对象概述
面向过程:C 语言。做一件事情的时候,“我该怎么做?”。需要思考比较详细的步骤,按着步骤一步步来实现。需要关心实现的每一个细节,以及资源持有的对象。
面向对象:Java 语言。做一件事情的饿时候,“我应该找谁来做?”。不需要我们太过关心这件事怎么去实现,只需要指定对应的对象即可。因为对象已经具备对应的技能,指定了的对象会自己通过它的技能去实现对应的功能。
好处:
1)面向对象思维方式是一种更加符合人们日常中思考的习惯。
2)面向对象中更多的会体现出调用者的处理能力。
3)可以将复杂的问题,封装起来,更加有条理去处理。
4.2 类和对象
类:其实指的是类型。
地球上什么动物最聪明:人。指的是全体人类。
类,主要是将一些个体中共有的属性抽取出来组成的一个类型。
对象:对象,指的是在这个类型中的个体。人类指的是全体人类,如果说你有一个同学叫张三,那么张三就是一个实例(对象),因为张三也是一个人。
教室里全部都是人。指的是一个个的人,实例(对象)。
4.3 局部变量和全局变量(重点中重点)
之间的区别:
1)定义的位置不同。
成员变量:定义在类中的,方法外面的。
局部变量:定义在方法中的,还有在代码块中的。
2)在内存中的位置不同。
成员变量:存储在内存的对象中。
局部变量:存储在栈内存的方法中。
3)声明的周期不同。
成员变量:随着对象的出现就同时也会在堆内存中出现
如果对象消失了,变量也会一同消失。
局部变量:在方法的运行时才会出现。
方法执行完毕之后(弹栈)就会消失。
4)初始化不同。
成员变量:因为是在内中,所以初始化时是在堆内存里,所以会有默认值。
局部变量:没有默认的初始化值,需要我们手动给它设置值,才能用。