栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day11

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day11

一、回顾
1.租车系统
2.抽象方法
   概念:只有方法是声明 没有方法体使用abstract来进行修饰
   语法: 访问修饰符 abstract  返回值类型  方法名称(参数列表)
   说明:抽象方法必须在抽象类型中
3.抽象类
   语法:访问修饰符 abstract  class 类名{}
   成员: 成员变量 
        构造方法
        方法:成员方法 静态方法  抽象方法
   说明:
      A.抽象类是不可以实例化对象
      B.抽象类中构造方法用于给子类来进行调用
      C.抽象类中可以有抽象方法 还可以有其它方法  但是抽象方法必须在抽象类中
      D.抽象类一般用于作为父类 抽象类的子类 必须实现抽象类中的所有的抽象方法(子类也是抽象类)
 4.接口
    语法: 访问修饰符  interface 接口名称{}
    成员:
       A.接口中的变量 都是静态的常量 默认都是使用 public  static    final 来进行修饰
       B.方法:
           a.在jdk1.8之前 接口只能有抽象方法
           b.在jdk1.8之后 接口可以有 默认方法 静态方法 抽象方法 
             在jdk1.9之后 接口可以有私有方法
 5.实现:
     分类: 单实现与多实现
     原则: 必须实现接口中所有的抽象方法
 6.类与接口 接口与接口 类与类
   类与类: 单继承 多层继承  不能多继承
   接口与类: 单实现 多实现
   接口与接口: 单继承 多继承 多层继承
 7.代码块:
    局部代码块  构造代码块  静态代码块(重点)
  
二、内部类

成员内部类:普通成员内部类、私有成员内部类、静态内部类

//普通的成员内部类
    位置:定义在类中 方法外
    语法:
      访问修饰符 class 外部类名 {
          访问修饰符  class 内部类名{
            
          } 
      }
    说明:
       A.内部类可以访问外部类的资源(包括私有的资源)
       B.外部类访问内部类的资源 必须实例化对象之后  通过对象名来进行访问
       C.外部类以外的类可以访问内部类的资源 
         语法: 外类类.内部类  对象名 = new 外部类().new 内部类()
         例子:OutClass.Inner  in  = new OutClass().new Inner();
​
//私有的成员内部类
   位置:定义在类中 方法外
   语法: 
     访问修饰符 class 外部类名 {
          private class 内部类名{
            
          } 
      }
   说明:
       A.内部类可以访问外部类的资源(包括私有的资源)
       B.外部类访问内部类的资源 必须实例化对象之后  通过对象名来进行访问
       C.外部类以外的类不可以访问内部类的资源
​
//静态内部类
    位置: 定义在类中 方法外
    语法:
      访问修饰符 class 外部类名 {
        static  class 内部类名{
            
        }
        
      }
    说明:
      A.静态内部类只能访问外部类的静态的资源
      B.外部类访问内部类的资源
         a.如果访问是非静态是资源  需要实例化对象之后 通过对象名访问
         b.如果访问是静态资源 直接通过类名来访问
      C.外部类以外类是可以访问内部类的资源
        语法: 外部类.内部类 对象名  = new  外部类.内部类()
        例子:  OutClass.Inner in  = new OutClass.Inner();

局部内部类

定义在方法中的内部类

//局部内部类
       位置:定义方法中
       语法:
         访问修饰符  返回值类型  方法名称(){
              class 内部类名{
                 
              }
         }
       C.说明:
          局部内部类 外部类只能间接访问其资源

匿名内部类

没有名称的内部类

//匿名内部类
     概念: 没有名称内部类
     前提:实例化接口(实现类) 或者是抽象类(子类)   
三、jar管理(重点)

项目打包的原因:

想调用其他项目资源的时候,得导入该项目的包,于是乎项目打包出现,,方便于调用(被打包项目的)资源

(详细操作流程见备忘录"包含打包jar、使用jar、删除jar(包含删除依赖和删除jar)")

四、API
简介
•   概念:API 应用程序接口编程  主要就是提供查看jdk相关资源的文档 
作用
​
•   A.jdk中提供了一些常用的方法以及类 以及接口的使用
​
•   B.使用帮助文档来快速查找jdk提供相关的资源 提供开发的效率
使用:(点击JDK_API_1_6_zhCN.CHM)
使用说明
​
•   A.查看类的描述
•   B.查看类的构造方法
•   C.查看成员方法以及静态方法 
•        参数列表   返回值类型   方法描述
文档注释-注解
​
•   @author  作者
•   @version 版本
•   @since 说明
•   @param 参数
•   @return 返回值
生成帮助文档
​
•   编码格式:zh_CN
​
•           -encoding UTF-8 -charset UTF-8
五、Object(重点) 5.1简介
1.概念: 类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法
       Object 是所有类的直接父类 或者是间接父类
2.构造方法
     public Object()
3.作用:
   A.用于来实例化对象
   B.用于给子类来进行调用
5.2 toString() 方法
1.public String toString()  返回该对象的字符串表示
  getClass().getName() + '@' + Integer.toHexString(hashCode())
2.返回字符串解释
     getClass().getName()==> 返回值是完整包名加上类名
     @==>表示一个连接符号 没有特殊的含义
     hashCode() 表示是hashcode值
     Integer.toHexString()==>表示以十六进制形式来表示
3.toString() 返回的是对象的地址值 没有实际的意义 所有需要重写
4.重写的规则: 返回对象的属性值
5.快捷键 alt+insert
6.自定义对象中 重写toString() 打印对象的名称  默认会调用toString()方法
5.3 equals() 方法
1.方法:public boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。
2.解释: 
   对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true 
   两个对象的地址值是一样才返回true  两个指引 执行同一个堆的内存的地址
3.equals() 默认比较的是两个对象的地址值 没有实际的意义 所有需要进行重写
4.重写的规则:比较对象的属性值是否相同
5.快捷键:alt +insert
6.==与 比较equals()
   相同点: 都可以用于来比较是否相等
   不同点:
     A.==既可以比较基本数据类型 也可以比较引用数据类型  equals() 只能比较引用数据类型
     B.==比较基本数据类型 比较的数值是否相同   比较引用数据类型 比较的是地址值是否相等
       equals()没有重写之前 比较的对象的地址值是否相同  重写之后 比较的是对象的属性值是否相同
六、String(重点) 6.1简介
1.String 类代表字符串。Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现
2.字符串是常量 使用final来进行修饰   不能改变是地址值  可以改变的是对象的内容
3. String 对象是不可变的,所以可以共享
4.字符串字符值是存在堆内存中字符串常量吃  new  String() 是存在 堆内存中
5.字符串的底层是使用字节数组来进行存储
6.2 字符串构造方法 3+1
构造方法名称构造方法的描述
String s ="abc"字面值底层也会执行字符串的构造方法
public String()初始化一个新创建的 String 对象
public String(byte[] bytes)将字节数组构成成一个字符串
public String(byte[] bytes, int offset, int length)将字节数组指定的长度内容构建成一个字符串
public String(char[] value)将字符数组构建成一个新的字符串
public String(char[] value, int offset, int count)将字符数组指定的长度内容构建成一个字符串
package com.zhenglyz.day11.test2;
​
public class Test2 {
    public static void main(String[] args) {
        //字符串字面值
        String s="abc";
        System.out.println("s = " + s);
        //实例化一个空的字符串对象
        String s1=new String();
        System.out.println("s1 = " + s1);
        //将字节数组构建成一个字符串
        byte[] bytes1={97,98,99};
        String s2=new String(bytes1);
        System.out.println("s2 = " + s2);
        //将字节数组指定的长度内容构建成一个字符串
        byte[] bytes2={97,98,99};
        String s3 =new String(bytes2,0,2);
        System.out.println("s3 = " + s3);
​
        //将字符数组构建成一个新的字符串
        char[] chars1={'a','b','c'};
        String s4=new String(chars1);
        System.out.println("s4 = " + s4);
        //将字符数组指定的长度构建成一个字符串
        char[] chars2={'a','b','c'};
        String s5=new String(chars2,0,2);
        System.out.println("s5 = " + s5);
    }
}

6.3 字符常用的方法-判断性
方法的名称方法的描述
public boolean contains(CharSequence s)判断字符串中是否包含此字符
public boolean equals(Object anObject)用于判断两个字符串内容是否相同
public boolean startsWith(String prefix)此字符串是否以指定的前缀开始
public boolean endsWith(String suffix)此字符串是否以指定的后缀结束
public boolean isEmpty()当且仅当 length() 为 0 时返回 true
public int length()返回此字符串的长度
public boolean equalsIgnoreCase(String anotherString)将此 String 与另一个 String 比较,不考虑大小写
package com.qf.test15;
​
public class Test02 {
    public static void main(String[] args) {
        //判断字符串是否包含篮球
        System.out.println("蔡徐坤打篮球贼厉害".contains("篮球"));
        System.out.println("蔡徐坤打篮球贼厉害".contains("吴亦凡"));
        System.out.println("吴某某被都某某举报".startsWith("吴某某"));
        System.out.println("吴某某被都某某举报".startsWith("罗志祥"));
​
        System.out.println("吴某某被都某某举报".endsWith("举报"));
        System.out.println("吴某某被都某某举报".endsWith("阿飞"));
        System.out.println("abc".equalsIgnoreCase("ABc"));
        System.out.println("abc".equalsIgnoreCase("Adc"));
        System.out.println("   ".length());
        System.out.println("".length());
        System.out.println("".isEmpty());
        System.out.println("吴亦凡".isEmpty());
​
    }
}
6.4 案例
step01需求
​
•   键盘录入一个邮箱地址  判断优先是否合法  以com结尾  包含@ 符号   键盘一个图片的名称判断图片是否合法
​
step02 分析
​
•   A.实例化Scanner
•   B.使用字符串方法
endsWith() contains()
•   C.使用选择结构判断是否正确

//step03 代码
package com.zhenglyz.day11.test3;
​
import java.util.Scanner;
​
public class Test3 {
    public static void main(String[] args) {
        //实例化Scanner
        Scanner input = new Scanner(System.in);
        System.out.println("请输入邮箱地址");
        String email = input.next();
        if (email.contains("@") && email.contains("com")) {
            System.out.println("邮箱输入正确");
        } else {
            System.out.println("邮箱输入错误");
        }
​
        System.out.println("请输入图片名称");
        String fileName = input.next();
        if (fileName.endsWith("jpg") || fileName.endsWith("png") ||
                fileName.endsWith("gif") || fileName.endsWith("jpeg")) {
            System.out.println("图片输入正确");
            System.out.println(fileName.length());
        } else {
            System.out.println("图片输入错误");
            System.out.println(fileName.length());
            System.out.println(fileName.isEmpty());
        }
​
        input.close();
    }
}
6.5 字符串常用的方法-得到性
方法的名称方法的描述
public char charAt(int index)返回指定索引处的 char 值
public int indexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引(从前往后进行查找)
public int lastIndexOf(String str)返回指定子字符串在此字符串中第一次出现处的索引(从后往前进行查找)
public String substring(int beginIndex, int endIndex)截取指定的字符串(包头不包尾)
//代码
package com.qf.test15;
​
public class Test04 {
    public static void main(String[] args) {
        String   s1 ="聪哥与网红小姐姐约会";
        char c = s1.charAt(0);
        System.out.println(c);
        char c1 = s1.charAt(4);
        System.out.println(c1);
        String s2="阿飞找了打篮球阿飞找到女朋友";
        System.out.println(s2.indexOf("阿"));
        System.out.println(s2.lastIndexOf("阿"));
        String s3 = s2.substring(4,7);
        System.out.println(s3);
        String s4=  s2.substring(4);
        System.out.println(s4);
​
​
    }
}
6.6 案例
step01 需求
​
•   键盘录入一串字符  通过a这个字符出现的次数  
​
step02 分析
​
•   A.将字符串拆分一个字符数组
•       substring()
•   B.使用循环遍历 与字符a进行对比
•   C.定义一个变量 统计其次数
//step03 代码
package com.qf.test15;
​
import java.util.Scanner;
​
public class Test05 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一串字符");
        String line = input.next();
        //定义一个字符数组
        char[] arrays = new char[line.length()];
        //使用循环遍历 给字符数组赋值
        for (int i = 0; i < arrays.length; i++) {
            arrays[i] = line.charAt(i);
        }
        //定义一个变量记录
        int count = 0;
        //使用循环遍历数组
        for (int i = 0; i < arrays.length; i++) {
            if (arrays[i] == 'a') {
                count++;
            }
        }
​
        System.out.println(count);
    }
}
6.7 案例
step01 需求
​
•   键盘录入一个银行卡的余额  123456789 将字符处理后的结果: 123,456,789
​
step02 分析
​
•   A.实例化Scanner
•   B.将字符串拆分到每一个字符串数组中
•   C.使用循环从后往前遍历(倒着遍历)
•       i % 3  ==0   i !=0  拼接逗号
•       其它情况直接拼接 数据  
//step03 代码
package com.zhenglyz.day11.test5;
​
import java.util.Arrays;
import java.util.Scanner;
​
public class Test5 {
    public static void main(String[] args) {
        //实例化Scanner
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一串字符");
        String line = input.next();
        String[] arrays = new String[line.length()];
        for (int i = 0; i < arrays.length; i++) {
            //加一个""的目的是为了是的转换后,类型从char变为String
            arrays[i] = (line.charAt(i) + "");
        }
        //查看是否有存储到自定义类的数组内
        System.out.println(Arrays.toString(arrays));
​
        //定义一个应用类型的str来接收
        String str = "";
​
        //使用循环遍历数组
        for (int i = arrays.length - 1; i >= 0; i--) {
            if (i % 3 == 0 && i != 0) {
                str += arrays[arrays.length - 1 - i] + ",";
            } else {
                str += arrays[arrays.length - 1 - i];
            }
        }
        System.out.println(str);
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028906.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号