目录
面向对象:
类和对象
类的定义
对象的使用
总结类和对象
成员变量和局部变量的区别
private关键字
this关键字
封装概述 和 构造方法 及 构造方法的注意事项
标准类制作
字符串
API概述
String类概述 和 String构造方法
创建字符串对象两种方式的区别 和 字符串的比较
String类常用方法
StringBuilder类概述 和 StringBuilder构造方法
StringBuilder添加和反转方法 及 StringBuilder和String相互转换
帮助文档查看StringBuilder类方法
ArrayList
ArrayList类的概述
ArrayList类构造和添加方法
ArrayList类常用方法
面向对象:
类和对象
客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。
- 类的概述: 类是对一群具有共同属性和行为事物的抽象(抽象)
- 对象的概述: 真实客观存在的事物(具体存在的,看得见摸得着)
- 举例:
- 手机------>类
- 你手上的那台手机---->对象
- 摩拜单车---->类
- 你早上骑得那辆膜拜单车---->对象
- 汽车---------->类
- 你买的那辆汽车----->对象
- 人---->类
- 张三---->对象
- ...
- 对象和类的关系:
- 类是对象的抽象
- 对象是类的实体
类的定义
-
类的组成:
- 属性(成员变量)
- 行为(方法)
-
格式:
public class 类名{
// 属性(成员变量)
数据类型 变量名;
// 行为(成员方法)
方法;// 仅仅只去掉static
}
-
注意:
- 成员变量定义的位置是在类中,方法外
- 成员方法和之前方法的定义一模一样,只是去掉static关键字而已
- 类中的属性和行为根据需求定义,也就是需求里面用到的属性和行为就定义,不需要用到的就不定义
- 类中定义的属性和行为,一定是这一类事物共同拥有的
- 定义类的套路:
- 分析这类事物共同拥有的属性和行为---程序需要使用的
- 根据定义类的格式定义类
- 在类中根据定义成员变量的格式定义成员变量
- 在类中根据定义方法的格式定义成员方法
- 确定成员方法定义的位置
- 明确成员方法的返回值类型,参数,方法名,方法体
- 根据成员方法定义的格式定义方法
对象的使用
-
创建对象: 类名 对象名 = new 类名();
-
使用对象访问变量: 对象名.成员变量名
-
使用对象访问成员方法:
- 无返回值的方法: 对象名.成员方法名(实参);
- 有返回值的方法:
- 直接调用: 对象名.成员方法名(实参);
- 赋值调用: 数据类型 变量名 = 对象名.成员方法名(实参);
- 输出调用: System.out.println(对象名.成员方法名(实参));
总结类和对象
- 类的定义:
- 格式:
类的组成:
- 属性(成员变量)
- 行为(方法)
格式:
public class 类名{
// 属性(成员变量)
数据类型 变量名;
// 行为(成员方法)
方法;// 仅仅只去掉static
}
注意:
- 成员变量定义的位置是在类中,方法外
- 成员方法和之前方法的定义一模一样,只是去掉static关键字而已
- 类中的属性和行为根据需求定义,也就是需求里面用到的属性和行为就定义,不需要用到的就不定义
- 类中定义的属性和行为,一定是这一类事物共同拥有的
- 分析这类事物共同拥有的属性和行为---程序需要使用的
- 根据定义类的格式定义类
- 在类中根据定义成员变量的格式定义成员变量
- 在类中根据定义方法的格式定义成员方法
- 确定成员方法定义的位置
- 明确成员方法的返回值类型,参数,方法名,方法体
- 根据成员方法定义的格式定义方法
-
创建对象: 类名 对象名 = new 类名();
-
使用对象访问变量: 对象名.成员变量名
-
使用对象访问成员方法:
- 无返回值的方法: 对象名.成员方法名(实参);
- 有返回值的方法:
- 直接调用: 对象名.成员方法名(实参);
- 赋值调用: 数据类型 变量名 = 对象名.成员方法名(实参);
- 输出调用: System.out.println(对象名.成员方法名(实参));
总结类和对象
- 类的定义:
- 格式:
- 格式:
public class 类名{
成员变量: 数据类型 变量名;
成员方法: 按照方法的定义格式定义即可(目前去掉static)
}
- 注意:
- 开发中,一个类尽量就对应一个java文件
- 类中的属性和行为根据需求定义,也就是需求里面用到的属性和行为就定义,不需要用到的就不定义
- 类中定义的属性和行为,一定是这一类事物共同拥有的
- 类中定义方法和之前定义方法一模一样,只是去掉static而已
- 对象的使用:
- 创建对象: 类名 对象名 = new 类名();
- 访问成员变量: 对象名.成员变量名
- 访问成员方法:
- - 无返回值的方法: 对象名.成员方法名(实参);
- - 有返回值的方法:
- - 直接调用: 对象名.成员方法名(实参);
- - 赋值调用: 数据类型 变量名 = 对象名.成员方法名(实参);
- - 输出调用: System.out.println(对象名.成员方法名(实参));
- 成员变量的默认值:
- 整数类型: 默认值是0
- 小数类型: 默认值是0.0
- 字符类型: 默认值是不可见字符空字符
- 布尔类型: 默认值是false
- 引用类型: 默认值是null
- 类和对象的关系
- 类是对象的抽象
- 对象是类的具体
- 对象是根据类来创建的,一个类可以创建多个对象(对象和对象之间是相互独立的)
成员变量和局部变量的区别
- 定义位置不同: 成员变量定义在类中,方法外;局部变量定义在方法中或者方法声明上
- 内存中位置不同: 成员变量在堆区;局部变量在栈区
- 生命周期不同:
- 成员变量是随着对象的创建和存在,随着对象的销毁而销毁
- 局部变量是随着方法的调用而存在,随着方法的弹栈而销毁
- 初始值不同: 成员变量有默认值;局部变量没有默认值
private关键字
-
概述: private是一个权限修饰符,但是它的权限是最小的
-
作用:
- private可以修饰成员变量和成员方法
- 修饰成员变量: private 数据类型 变量名;
- 修饰成员方法: private 返回值类型 方法名(形参){ 方法体 }
- 被private修饰的成员只能在本类中使用,这样就可以保护本类的成员不被其他类访问
this关键字
- this关键字:
- 作用:使用this可以区分同名的成员变量和局部变量
- 格式:this.成员变量名
- 结论:
- 如果方法中有局部变量和成员变量同名,那么带this的就是成员变量,不带this就是局部变量
- 如果方法中没有局部变量和成员变量同名,那么带不带this都是成员变量
- this表示谁: 哪个对象调用this所在的方法,this就表示哪个对象(重要)
封装概述 和 构造方法 及 构造方法的注意事项
- 成员变量是随着对象的创建和存在,随着对象的销毁而销毁
- 局部变量是随着方法的调用而存在,随着方法的弹栈而销毁
-
概述: private是一个权限修饰符,但是它的权限是最小的
-
作用:
- private可以修饰成员变量和成员方法
- 修饰成员变量: private 数据类型 变量名;
- 修饰成员方法: private 返回值类型 方法名(形参){ 方法体 }
- 被private修饰的成员只能在本类中使用,这样就可以保护本类的成员不被其他类访问
- private可以修饰成员变量和成员方法
this关键字
- this关键字:
- 作用:使用this可以区分同名的成员变量和局部变量
- 格式:this.成员变量名
- 结论:
- 如果方法中有局部变量和成员变量同名,那么带this的就是成员变量,不带this就是局部变量
- 如果方法中没有局部变量和成员变量同名,那么带不带this都是成员变量
- this表示谁: 哪个对象调用this所在的方法,this就表示哪个对象(重要)
封装概述 和 构造方法 及 构造方法的注意事项
- 作用:使用this可以区分同名的成员变量和局部变量
- 格式:this.成员变量名
- 结论:
- 如果方法中有局部变量和成员变量同名,那么带this的就是成员变量,不带this就是局部变量
- 如果方法中没有局部变量和成员变量同名,那么带不带this都是成员变量
- this表示谁: 哪个对象调用this所在的方法,this就表示哪个对象(重要)
封装概述
- 封装是面向对象的三大特征之一(封装,继承,多态)
- 封装的好处:
- 提高代码的安全性----private
- 提高代码的复用性----方法
构造方法
-
概述: 构造方法是一种比较特殊的方法,用来创建对象的,并给对象属性赋初始化值的
-
定义构造方法:
// 空参构造方法
修饰符 构造方法名(){
}
// 有参构造方法
修饰符 构造方法名(形参){
使用形参给成员变量赋值
}
-
调用构造方法: 通过new来调用构造方法
构造方法的注意事项
- 修饰符一般使用public
- 构造方法名只能是类名
- 构造方法没有返回值,连void都没有
- 如果一个类没有定义构造方法,那么系统会自动给出一个空参构造方法
- 如果一个类中定义了构造方法,那么系统就不会自动给出一个空参构造方法,所以如果想要空参构造方法,就得自己手动定义了
- 构造方法是可以重载的
标准类制作
-
标准类要求:
- 属性必须使用private修饰
- 必须提供空参构造方法,建议同时提供满参构造方法
- 为属性提供setget方法
-
快捷键:
- 构造方法-->alt+insert-->Constructor--->空参有参构造
set get方法-->alt+insert-->getter and setter
- 其他成员方法
字符串
标准类要求:
- 属性必须使用private修饰
- 必须提供空参构造方法,建议同时提供满参构造方法
- 为属性提供setget方法
快捷键:
- 构造方法-->alt+insert-->Constructor--->空参有参构造
set get方法-->alt+insert-->getter and setter
API概述
-
什么是API
API (Application Programming Interface) :应用程序编程接口
-
java中的API
指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来**,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可**,我们可以通过帮助文档来学习这些API如何使用。
-
API的使用步骤:
- 双击打开jdk文档
- 点击显示--->点击索引--->在输入框中输入要查找的类,回车
- 查看包---->除了java.lang包下的类不需要导包,其他包下的类都需要导包
- 查看类的解释说明--->该类的使用场景
- 查看构造方法---->如何该类创建对象
- 查看成员方法
String类概述 和 String构造方法
什么是API
API (Application Programming Interface) :应用程序编程接口
java中的API
指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来**,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可**,我们可以通过帮助文档来学习这些API如何使用。
API的使用步骤:
- 双击打开jdk文档
- 点击显示--->点击索引--->在输入框中输入要查找的类,回车
- 查看包---->除了java.lang包下的类不需要导包,其他包下的类都需要导包
- 查看类的解释说明--->该类的使用场景
- 查看构造方法---->如何该类创建对象
- 查看成员方法
String类概述
-
概述:
- String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!
-
String str = "abc";
-
特点:
- 字符串不可变,它们的值在创建后不能被更改
- 虽然 String 的值是不可变的,但是它们可以被共享
- 字符串效果上相当于字符数组( char[] ),但是底层原理是字节数组( byte[] )
String构造方法
-
构造方法:
public String() 创建一个空白字符串对象,不含有任何内容 "" public String(char[] chs) 根据字符数组的内容,来创建字符串对象 char[]--->String public String(byte[] bys) 根据字节数组的内容,来创建字符串对象 byte[]--->String public String(byte[] bytes, int offset, int length) public String(char[] value, int offset, int count) public String(String original)
-
直接赋值
String s = "abc"; 直接赋值的方式创建字符串对象,内容就是abc 推荐
创建字符串对象两种方式的区别 和 字符串的比较
创建字符串对象两种方式的区别
-
通过构造方法创建
通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同 -
直接赋值方式创建
以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护
字符串的比较
-
字符串比较的方法: public boolean equals(Object obj);比较字符串内容是否相同
-
注意:
- 参数类型为Object类型,那么可以传一切类的对象
- 比较字符串内容一定要使用String类的equals方法,不要用==比较运算符
String类常用方法
-
扩展:
- 常用的方法:
- concat(); //把两个字符串拼接起来,获取一个新的字符串
- length(); //获取字符串的长度(其实就是获取字符串中 字符的个数)
- equals(); //比较两个字符串的内容是否相同。 //区分大小写
- equalsIgnoreCase(); //比较两个字符串的内容是否相同。 //忽略大小写
- charAt(); //根据给定的索引,获取对应位置的字符
- indexOf(); //获取指定的字符 在字符串中 第一次出现的位置(索引),找不到返回-1
- //int index = a1.indexOf('h'); 从头找,'h'第一次出现的位置
- //int index = a1.indexOf('h',3); 从索引为3的元素开始往后找,'h'第一次出现的位置
- lastIndexOf(); //获取指定的字符 在字符串中 最后一次出现的位置(索引),找不到返回-1
- //int index = a1.lastIndexOf('h'); 从尾部找,'h'最后一次出现的位置
- //int index = a1.lastIndexOf('h',3); 从索引为3的元素开始往前找,'h'最后一次出现的位置
- substring(); //截取字符串,返回新的字符串
- //String newStr = a1.substring(2); //从给定索引,直接截取到字符串末尾
- //String newStr = a1.substring(2,5); //包左不包右(前闭后开), 能取索引2的元素,不能取索引5的元素
- isEmpty(); //判断字符串是否为空(长度为0返回true,不为0返回false)
- contains(); //判断字符串中是否包含 给定的字符串。
- endsWith(); //判断字符串是否以 给定的字符串 结尾。
- startsWith(); //判断字符串是否以 给定的字符串 开头。
- replace(); //用新内容替代旧内容,返回新的字符串
- toLowerCase(); //把字母都转成其对应的小写形式。
- toUpperCase(); //把字母都转成其对应的大写形式。
- toCharArray() // 把字符串转换为数组
- getBytes() // 把字符串转换为字节数组
- trim(); //移除首尾空格。
- split(); //根据给定的内容,切割字符串,返回字符串数组
StringBuilder类概述 和 StringBuilder构造方法
扩展:
- 常用的方法:
- concat(); //把两个字符串拼接起来,获取一个新的字符串
- length(); //获取字符串的长度(其实就是获取字符串中 字符的个数)
- equals(); //比较两个字符串的内容是否相同。 //区分大小写
- equalsIgnoreCase(); //比较两个字符串的内容是否相同。 //忽略大小写
- charAt(); //根据给定的索引,获取对应位置的字符
- indexOf(); //获取指定的字符 在字符串中 第一次出现的位置(索引),找不到返回-1
- //int index = a1.indexOf('h'); 从头找,'h'第一次出现的位置
- //int index = a1.indexOf('h',3); 从索引为3的元素开始往后找,'h'第一次出现的位置
- lastIndexOf(); //获取指定的字符 在字符串中 最后一次出现的位置(索引),找不到返回-1
- //int index = a1.lastIndexOf('h'); 从尾部找,'h'最后一次出现的位置
- //int index = a1.lastIndexOf('h',3); 从索引为3的元素开始往前找,'h'最后一次出现的位置
- substring(); //截取字符串,返回新的字符串
- //String newStr = a1.substring(2); //从给定索引,直接截取到字符串末尾
- //String newStr = a1.substring(2,5); //包左不包右(前闭后开), 能取索引2的元素,不能取索引5的元素
- contains(); //判断字符串中是否包含 给定的字符串。
- endsWith(); //判断字符串是否以 给定的字符串 结尾。
- startsWith(); //判断字符串是否以 给定的字符串 开头。
- replace(); //用新内容替代旧内容,返回新的字符串
- toLowerCase(); //把字母都转成其对应的小写形式。
- toUpperCase(); //把字母都转成其对应的大写形式。
StringBuilder类概述
- StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的
- String和StringBuilder的区别:
- String表示的字符串内容是不可变的
- StringBuilder表示的字符串内容是可变的
StringBuilder构造方法
-
构造方法:
- public StringBuilder():创建一个空白可变字符串对象,不含有任何内容
- public StringBuilder(String str):根据字符串的内容,来创建可变字符串对象
StringBuilder添加和反转方法 及 StringBuilder和String相互转换
StringBuilder添加和反转方法
- public StringBuilder append(任意类型):添加数据,并返回对象本身
- public StringBuilder reverse():返回相反的字符序列
StringBuilder和String相互转换
- StringBuilder 转换为 String
public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String - String 转换为 StringBuilder
public StringBuilder(String s):通过构造方法就可以实现把 String 转换为 StringBuilder
帮助文档查看StringBuilder类方法
- public StringBuilder();
- public StringBuilder(String str); String-->StringBuilder
- public StringBuilder append(任意类型):添加数据,并返回对象本身
- public StringBuilder reverse():返回相反的字符序列
- public String toString():通过 toString() 就可以实现把 StringBuilder 转换为 String
ArrayList
ArrayList类的概述
-
集合概述: 集合其实就是一个大小可变的容器,可以用来存储多个数据
-
集合特点: 集合长度是可变的
-
ArrayList类: 表示集合,底层是一个大小可变的数组(长度可变的)
是泛型,泛型表示一种未知的数据类型,使用的时候确定其具体的数据类型 - 使用的时候,只需要在E出现的位置,使用具体的引用数据类型替换即可
- 泛型作用: 用来限制集合中元素的类型
- 例如:
- ArrayList
表示该集合中只能存储String类型的元素 - ArrayList
表示该集合中只能存储Student类型的元素 - ...
- 注意: <>里面不能写基本类型,只能写引用类型 eg: ArrayList
错误的
ArrayList类构造和添加方法
-
构造方法
- public ArrayList():创建一个空的集合对象
-
添加元素方法
- public boolean add(E e):将指定的元素追加到此集合的末尾
- public void add(int index,E element):在此集合中的指定位置插入指定的元素
ArrayList类常用方法
-
常用方法:
- public boolean remove(Object o):删除指定的元素,返回删除是否成功
- public E remove(int index):删除指定索引处的元素,返回被删除的元素
- public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
- public E get(int index):返回指定索引处的元素
- public int size():返回集合中的元素的个数
-
集合概述: 集合其实就是一个大小可变的容器,可以用来存储多个数据
-
集合特点: 集合长度是可变的
-
ArrayList
类: 表示集合,底层是一个大小可变的数组(长度可变的) 是泛型,泛型表示一种未知的数据类型,使用的时候确定其具体的数据类型 - 使用的时候,只需要在E出现的位置,使用具体的引用数据类型替换即可
- 泛型作用: 用来限制集合中元素的类型
- 例如:
- ArrayList
表示该集合中只能存储String类型的元素 - ArrayList
表示该集合中只能存储Student类型的元素 - ...
- ArrayList
- 注意: <>里面不能写基本类型,只能写引用类型 eg: ArrayList
错误的
ArrayList类构造和添加方法
-
构造方法
- public ArrayList():创建一个空的集合对象
-
添加元素方法
- public boolean add(E e):将指定的元素追加到此集合的末尾
- public void add(int index,E element):在此集合中的指定位置插入指定的元素
ArrayList类常用方法
-
常用方法:
- public boolean remove(Object o):删除指定的元素,返回删除是否成功
- public E remove(int index):删除指定索引处的元素,返回被删除的元素
- public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
- public E get(int index):返回指定索引处的元素
- public int size():返回集合中的元素的个数
-
构造方法
- public ArrayList():创建一个空的集合对象
-
添加元素方法
- public boolean add(E e):将指定的元素追加到此集合的末尾
- public void add(int index,E element):在此集合中的指定位置插入指定的元素
ArrayList类常用方法
-
常用方法:
- public boolean remove(Object o):删除指定的元素,返回删除是否成功
- public E remove(int index):删除指定索引处的元素,返回被删除的元素
- public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
- public E get(int index):返回指定索引处的元素
- public int size():返回集合中的元素的个数
常用方法:
- public boolean remove(Object o):删除指定的元素,返回删除是否成功
- public E remove(int index):删除指定索引处的元素,返回被删除的元素
- public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
- public E get(int index):返回指定索引处的元素
- public int size():返回集合中的元素的个数



