-----------------------ApI-------------
应用程序编程接口 java 中的的api: 概念 底层类库
ctrl+Alt +v 快捷键自动补全调用方法的接收数据
java。utll 需要导包 java.lang也可以导包 包下所以不需要导包
String 概念 : 用来描述字符串 特点 不可变的 可共享的 底层是字节数组
new出来的String堆内存开辟一条内存
没new的 String s1 = 都在字符串常量池中 数据相同 比较类型和大小
不一样的话在字符串常量池在开一处内存 减少内存的使用率
使用==做比较
基本类型 比较的是数据值是否相同 引用类型 比较的是地址值是否相同
equals 字符串来说的话 比较的是数据值 si.equals(s2);
输入的字符串的变量名.length 长度方法 变量名.charAt 和提取字符串数值
str.substring取字符串 equals
String str = "123456789";
//长度 string的方法
System.out.println(str.length());
//内容是否相等
System.out.println(str.equals("123456789"));
String str1 = "abc";
System.out.println(str.equals("aBc"));//这个是false
System.out.println(str.equalsIgnoreCase("ABC"));//不在乎大小
//取字符
System.out.println(str.charAt(0));
//判断开始 是从这开始的吗
System.out.println(str.startsWith("123"));
//判断结束 是从这里结束的吗
System.out.println(str.endsWith("789"));
//取字符串
System.out.println(str.substring(0,5));//取字符串0到5(但不包括五)的数字
System.out.println(str.substring(1));//从第一位开始以后的字符打印
//是否包含
System.out.println(str.contains("456"));
//字符出现的位置
System.out.println(str.indexOf('8'));
System.out.println(str.indexOf('y'));
System.out.println(str.indexOf("23"));
split(\\.)切割
String Builder 和String区别在于可变换 只能用 appe赋值 区别- String:不可变字符串- StringBuilder:可变字符
在堆内存不断追加数据 拼接用StringBuilder 不拼接用String
length 长度
append(任意类型) 添加数据 并返回对象本身 追加数据 链式编程
reverse 返回相反的字符
tostring StringBuilder转String String转StringBuilder 需要new他参数
- StringBuilder到String: toString();
- String到StringBuilder: new StringBuilder("abc")
-------------------ArrayList--------------
特点: 可变长度的数据容器 java.utll.ArrayList
ArrayList 构造方法和添加方法 ArrayList<数据类型(泛型)> = new ArrayList<泛型>
1. ArrayList集合的特点
- 概念:可变长度的数据容器,java.util.ArrayList
2. ArrayList构造方法和添加方法
- ArrayList<String> list=new ArrrayList<String>();
- list.add("java"):添加数据
- list.add(0,"java"):插入数据
3. ArrayList常用方法
- remove(“java”):删除
- remove(index):删除
- set(0,"java"):替换
- get(index):取单个值
- size():长度 大小
数组获取长度是length 字符串是length() 集合是size
------------------继承-------------------
继承的概念:面向对象的三大基本特征之一,使子类可以拥有父类的属性和方法
继承的格式语法: public class 子类 extends 父类
继承的优点 提高代码的复用性 提高了代码的维护性
继承的缺点 父类和子类强耦合(紧密联系)在一起了,子类无条件的继承父类的方法
继承中变量的访问特点;规则:就近使用原则,局部优先原则子类的局部子类成员父类的成员
super关键字在访问成员变量时的用法 super.成员变量名-->父类的成员变量this.成员变量名-->本类的成员变量
继承中构造方法的访问特点(super调用构造方法)
super(); 子类会默认调用父类无参的构造方法,super()方法当中除注释以外的第一句代码
this();本类的构造方法,方法当中除注释以外的第一句代码
继承中成员方法的访问特点(super调用成员方法)
super.方法名() 调用父类的方法 this.方法名() 调用本类的方法
方法重写 子类中出现与父类相同的方法
方法重写注意事项
private方法不允许被重写
private->默认->protected->public 子类方法的修饰符的访问范围要大于等于父类方法的修饰符
继承的注意事项 单继承体系多层继承
package的概念包就是文件夹,主要用来管理类 语法: package com.test;
import的概念 导入不同包中的java类语法: import com.test.类名; 支持通配符* import com.test.*;
15.final修饰符 变量:变量的值不可被改变方法:不可以被重写类:不可被继承
.static修饰符 修饰属性: 类名.属性名 方式访问 多个对象共享一个属性的值 修饰方法:类名.方法名()访问
-------------------------------多态------------------------------------
多态的概述: 同一个对象 在不同时刻表现出来的不同形态
多态的前提和体现: 有几成实现关系 有方法重写 有父类引用指向子类对象
因为成员方法有重写 成员变量没有 子类有用重写子类的 没有用父类的 必须要重写 要不然掉不到
所以多态成员访问特点 变量 :编译看左边 运行看左边 方法 编译看左边 运行看右边
优点 :提高了代码的扩展性 缺点:父类的引用导致子类的
向上转型 自动类型转换 父类的类名 父类引用 = new 子类();
向下转型 强制类型转换 子类的类名 子类引用 = (子类的类名)父类的引用();
instanceof 判断父类是否能转换子类
---------------------------抽象类---------------------
abstract修饰的类 叫抽象类 没有方法体的的方法需要abstract修饰
public abstract void 方法名(){} 抽象类不一定有抽象方法 但是一个类有了抽象方法 类也必须是抽象类
抽象不能实例化对象 需要继承多态的形式使用它
抽象类的子类要么重写抽象方法 要么自己也变成抽象类
抽象类的成员特点 成员变量 可以是常量也可以是变量
有构造方法 给子类初始化对象的
---------------------------------接口---------------------------------------
接口 行为规范 特殊的类 所有方法都是抽象方法作为一种行为规范
public interface 接口名 接口通过interface关健字声明
类与接口之间的关系实现关系 implements
不能实例化对象
类实现接口后 要不重写接口里面的方法要不加abstract变成抽象类
接口成员变量(常量)默认语句是 public static final 变量类型和变量名 公有的常量
没有构造方法 因为没有变量 都是常量
成员方法默认是抽象方法public abstrac 返回值 方法名 公有的抽象方法(没有方法体)
实例化对象里面可以构造方法是因为他默认 继承object 给它里面super();并不是给接口
一个 实例化类可以继承后 继续实现单个 或多个接口 ,逗号隔开
接口和接口可以继承 也可以继承多个接口 extends 接口名 多个加逗号,
需求能被复用性一部分共有方法的一部分是抽象方法的使用抽象类
都是抽象类使用接口
新追加的功能使用接口 一个子类只能继承一个抽象类 但是可以实现多个接口
继承原来的子类添加新需求的接口 开闭原则 对新增开放 对修改关闭 |
|