day11笔记
一.打包
第一步:
第二步:
第三步:
第四步:
第五步:
二.导包
第一步:
将包导入需要到的文件夹里,一般新项目里面创建一个lib文件夹,导入的包放入此文件夹里面
第二步:
第三步:
第四步:
三.删除包
在删除包就行了
四.API
1概念:API:应用程序接口编程,提供一些类和接口的使用
作用:jdk提供一些常用的方法以及类的使用,简化开发
1.查看API
通过类名来进行类的搜索
2.注意事项:
A.查看类需要关注类的描述
B.类是是否有构造方法,是否可以实例化对象
C.查看类是否有普通方法,方法的描述,方法的参数以及方法的返回值
D.查看类中的静态方法 static 静态方法是可以通过类名来进行调用的
五.生成帮助文档
1.帮助文档中的常有的注解
@version 版本
@author 作者
@since 描述
@方法的参数
@return 方法的返回值
2.生成帮助文档
六.tostring(重点)
方法名 | 方法的描述 |
---|---|
public string tostring() | 该对象的字符串形式 |
1.tostring:默认返回的是对象的地址值
2.getClass.getName +@ +地址符
getClass==>表示为包名 getName==>类名
3.如果是自定义的类,tostring()方法的返回的是地址值,没有实际意义,一般建议重写
4.重写的规则:一般返回的是对象的属性值,快捷键:Alt +insert
5.注意点:一个类名直接打印对像名,一般默认调用toString()方法,如果没有重写,会默认调用父类的toString()方法
调试:
package com.qf.lt.oop01;
import java.util.Objects;
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//重写equals方法
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age && name.equals(student.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
//重写tostring
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age
'}';
}
}
测试类:
package com.qf.lt.oop01;
public class Test {
public static void main(String[] args) {
Student stu = new Student();
//在没有重写toString方法时,打印的是包名+类名+地址符
System.out.println(stu);
//重写tostring方法
Student st = new Student("张三",147);
System.out.println(st);
//在没有重写equals方法之前,判断的时两个对象的地址值是不是指向同一个堆内存,那么equals返回的时false
//在重写equals方法后,判断两个对象的属性值是相等时,equals返回的时true
Student st1 = new Student("张三",147);
Student st2 = new Student("张三",14);
System.out.println(st.equals(st1));
//在重写equals方法后,判断两个对象的属性值不相等
// 时,equals返回的时false
System.out.println(st.equals(st2));
}
}
七.equals()(重点)
方法的名称 | 方法的描述 |
---|---|
public boolean equals(Object obj) | 用于判断两个对象是否相等 |
1.equals()
对于任何非空引用值,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true
两个对象的地址值是一样则返回true 两个栈内存的引用指定同一一个堆内存
2.自定义:默认使用equals()方法是没有意义的,一般使用重写
3.重写的规则:当对象的属性值一样时,表示同一个对象 快捷键:Alt+insert
4.equals()与 == 的比较:
- 相同点 :都是用来做比较的
- 不同点:
- equals()只能用来比较引用数据类型;== 可以使用来比较引用数据类型,也可以使用来比较基本数据类型
- equa
s() 用来比较引用数据类,在没有重写之前,是比较两个对象的地址值,重写之后,比较的是对象的属性值; == 比较基本数据类型,比较的是数值,比较引用数据类型时也是对象的地址值
八.String
1.简述
1.string代表的是字符串
2.存储:字符串是先将字符串转换为字符数组后,将字符数组转换为字节,以字节来进行存储的
2.构造方法(3+1)
构造方法的名称 | 构造方法的描述 |
---|---|
String s =“a”(这种场景)(重点) | 底层是调用String的构造方法 |
public String()(重点) | 初始化一个新创建的 String 对象,使其表示一个空字符序列 |
public String(byte[] bytes)(重点) | 将字节数组转换成一个字符串 |
public String(byte[] bytes, int offset, intlength) | 将字节数组指定的长度内容转换为字符串 |
public String(char[] value)(重点) | 将字符数组构建成一个字符串 |
public String(char[] value, int offset, intcount) | 将字符数组的指定的长度内容转换为字符串 |
3.判断性方法
判断性方法的名称 | 方法的描述 |
---|---|
public boolean contains(CharSequence s) | 判断字符串中是否包含此字符 |
public boolean endsWith(String suffix) | 测试此字符串是否以指定的后缀结束 |
public boolean startsWith(String prefix) | 测试此字符串是否以指定的前缀开始 |
public boolean equals(Object anObject) | 将此字符串与指定的对象比较 |
public boolean equalsIgnoreCase(StringanotherString) | 将此 String 与另一个 String 比较,不考虑大小写 |
public boolean isEmpty() | 当且仅当 length() 为 0 时返回 true |
public int length() | 返回此字符串的长度 |
4.案例
需求 键盘录入一个邮箱判断是否合法( 后缀 com 包含 @) 键盘录入一个图片名称 判断是否合法
package com.qf.lt.oop02;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
//录入一个邮箱,判断是否合法:以”com“结尾 蕴含“@”
Scanner sca = new Scanner(System.in);
System.out.println("录入一个邮箱");
String s1 = sca.next();
System.out.println(s1);
if (s1.endsWith("com") || s1.contains("@")){
System.out.println("合法");
}else {System.out.println("不合法");}
//输入一张图片的名字判断河
System.out.println("录入一个图片");
String s2 =sca.next();
if (s2.endsWith("jpg") &&s2.endsWith("jped") || s2.endsWith("gnp")){
System.out.println("合法");
}
else {System.out.println("不合法");}
}
}
五.等到性方法
方法名称 | 方法简述 |
---|---|
public char charAt(int index) | 返回指定索引处的 char 值 |
public String concat(Stringstr) | 将指定字符串连接到此字符串的结尾 |
public int indexOf(int ch) | 返回指定字符在此字符串中第一次出现处的索引(从前往后开始查找) |
public int indexOf(int ch, intfromIndex) | 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索 |
public int lastIndexOf(int ch) | 返回指定字符在此字符串中最后一次出现处的索引 |
public int lastIndexOf(int ch,int fromIndex) | 返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索(从后往前进行查找) |
public String substring(intbeginIndex) | 截取字符 从指定的位置开始截取 |
public String substring(intbeginIndex, int endIndex) | 该子字符串从指定的 beginIndex 处开始,直到索引 endIndex- 1 处的字符(包头不包尾) |
案例一:
需求 键盘录入一个字符串 abddddsaawsassdferredfdf 统计字符串中a的个数
代码:
package com.qf.lt.oop02;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner sca =new Scanner(System.in);
System.out.println("请输入一串字符串:");
String s1 = sca.next();
//使用数组来存放
String [] arrys = new String[s1.length()];
for (int i=0;i< arrys.length;i++){
arrys[i]=s1.charAt(i)+"";
}
int num = 0;
for (int i=0;i< arrys.length;i++ ){
if (arrys[i].equals("a")){
num++;
}
}
System.out.println(num);
}
}
案例二:
需求:张奇喜银行卡余额 12345678 ==> 12,345,678
package com.qf.lt.oop02;
import java.util.Arrays;
import java.util.Scanner;
public class Test3 {
public static void main(String[] args) {
Scanner sca = new Scanner(System.in);
System.out.println("输入你银行的存款:");
String s1 = sca.next();
//使用数组来进行字符串的存放
String [] arrys = new String[s1.length()];
for (int i=0;i<arrys.length;i++){
//把字符串转为一个个的字符来使用数组存放
arrys[i]=s1.charAt(i)+"";
}
//在加 ,
//定义一个数组来拼接
String s2="";
for (int i= arrys.length-1;i>=0;i--){
if (i%3==0 && i!=0){
s2+=arrys[arrys.length-1-i]+",";
}else {
s2+=arrys[arrys.length-1-i];
}
}
System.out.println(s2);
}
}
六.转化性方法
方法名 | 方法描述 |
---|---|
public byte[] getBytes() | 将字符串转换为字节数组 |
public char[] toCharArray() | 将此字符串转换为一个新的字符数组 |
public String toLowerCase() | 将字符转换为小写 |
public String toUpperCase() | 将字符转换为大写 |
public String trim() | 去除前后两端的空格 |
public static String valueOf(boolean b) | 将各种数据类型转换为String类型 |
public String replace(char oldChar, char newChar | 替换指定的字符 |
public String[] split(String regex) | 根据字符来进行拆分 |
案例:
1.需求 键盘录入一串字符 abc234DE ==>ABC***de
2.分析:
1.将字符串拆分成一个字符数组 ==>toCharArray()
2.遍历数组 根据ascll码来判断范围 进行转换
3.定义一个拼接新的数据
代码:
package com.qf.lt.oop02;
import java.util.Locale;
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
//实例化scnner
Scanner sca = new Scanner(System.in);
System.out.println("输入一串字符:");
String s1 = sca.next();
//将字符串转化为字符数组
char[] array = s1.toCharArray();
//定义一个数组来存放新数组
String s3 ="";
//遍历数组进行转换
for (int i=0;i< array.length;i++){
if (array[i]>='a' && array[i]<='z'){
s3+=(array[i]+"").toUpperCase();
}else if (array[i]>='A' && array[i]<='Z'){
s3+=(array[i]+"").toLowerCase();
}else if (array[i]>='0' && array[i]<='9'){
s3+="*";
}else {
s3+=array[i];
}
}
System.out.println(s3);
}
}