JAVA基础(四)

2018-06-18  本文已影响0人  Roper_被注册

形式参数和返回值问题

形式参数
    类:需要的是该类的对象
    抽象类:需要的是抽象类子类对象
    接口:需要的是接口的子类对象
    
返回值类型
-   基本类型:返回什么就用什么接收;
    
-   引用类型
    类:返回的是该类对象;
    抽象类:返回的是该类的子类对象
    接口:返回的是该接口子类的对象

包的定义及注意事项

  1. package语句必须是程序第一条可执行代码
  2. package语句在一个java文件中只能有一个
  3. 如果没有package,默认表示无包名

导包及注意事项

导包的格式:import 包名;

四种权限修饰符及其特点

' public protected 默认 private
本类
同一个包
不同包子类
不同包的其他类

内部类的概述及访问特点

把类定义在其他类内部,这个类就被称为内部类
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象

内部类的分类

根据定义的位置不同,分为
  1. 成员位置(成员内部类)
    创建对象:外部类名.内部类名 对象名=外部类名对象.内部类对象

  2. 局部位置(局部内部类)
    可以直接访问外部类的成员。可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能

匿名内部类的格式和应用及面试题

匿名内部类就是内部类的简化写法。必须存在一个类或者接口

面试题:

按照要求,补齐代码
    interface Inter { void show(); }
    class Outer { //补齐代码 }
    class OuterDemo {
        public static void main(String[] args) {
              Outer.method().show();
          }
    }
要求在控制台输出”HelloWorld”

class Outer{
    public static Inter method() {
        return new Inter() {
            public void show() {
                System.out.println("我是内部类");
            }
        };
        
    }
    
}

API常用类

Object类

类层次结构的根类
所有类都直接或者间接地继承自该类

Scanner类

JDK5以后用于获取用户的键盘输入

String类

字符串是由多个字符组成的一串数据
字符串可以看成是字符数组
字符串是常量,它的值在创建之后不能更改
例如:String s="hello";s+="world";s结果是helloworld

String类的判断功能

  1. boolean equals(Object obj)
  2. boolean equalsIgnoreCase(String str) //忽略大小写判断相等
  3. boolean contains(String str) //判断是否包含指定的char序列
  4. boolean startsWith(String str) //确定此字符串实例的开头是否与指定的字符串匹配。
  5. boolean endsWith(String str) //测试字符串是否以指定的后缀结束。
  6. boolean isEmpty() //判断是否为空,但是字符串为null时会报错

String类的获取功能

  1. int length() //获取字符串长度
  2. char charAt(int index) //检索特定索引下的字符
  3. int indexOf(int ch) //参数第一次出现的位置。
  4. int indexOf(String str)
  5. int indexOf(int ch,int fromIndex) //返回再次字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
  6. int indexOf(String str,int fromIndex)
  7. String substring(int start) //截获字符串
  8. String substring(int start,int end)

String类练习

  1. 把数组中的数据按照指定个格式拼接成一个字符串
    举例:int[] arr = {1,2,3}; 输出结果:[1, 2, 3]
    public static void string(){
    int[] arr= {1,2,3};
    String result="";
    for(int i=0;i<arr.length;i++) {
    result += arr[i];
    result +=",";
    }
    System.out.println(result
    .replace(" ","")
    .replace("1","[1")
    .replace("3,","3]")
    );
    }

  2. 字符串反转
    举例:键盘录入”abc” 输出结果:”cba”
    StringBuffer buffer=new StringBuffer("abd");
    buffer.reverse();
    system.out.println(buffer)

  3. 统计大串中小串出现的次数
    举例:在字符串” woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun”中java出现了5次

    String chuang="woaijavawozhenaijavawozhendeaijavawozhendehenaijavaxinbuxinwoaijavagun";
    String java="java";
    int count=0;//定义一个统计变量
    int index=chuang.indexOf(java);//获取一次"JAVA在这里大串中第一次出现的索引
    while((index=chuang.indexOf(java))!=-1) {//如果索引值是-1,则说明不存在。是1则统计变量++
    chuang=chuang.substring(index+java.length());//是1就记录一次,把刚才索引小串的长度作为起始位置截取原始大串,得到一个新的字符串。
    count++;
    }
    System.out.println(count);
    }

面试题

String s = new String(“hello”)和String s = “hello”;的区别?
前者要创建两个对象,后者创建1个对象

StringBuffer类

StringBuffer类概述:
我们如果对字符串进行拼接操作,每次拼接都会构建一个新的String对象,耗时又浪费空间。所以使用StringBuffer可以解决这个问题,它是线程安全的可变字符串序列;

StringBuffer的功能

面试题:

数组高级(排序和查找)

排序

查找

练习:

把字符串中的字符进行排序。
举例:”dacgebf”
结果:”abcdefg”
class Select{
     public static String sort(String str){
            //利用toCharArray可将字符串转换为char型的数组
            char[] s1 = str.toCharArray();
            for(int i=0;i<s1.length;i++){
                for(int j=0;j<i;j++){
                    if(s1[i]<s1[j]){
                        char temp = s1[i];
                        s1[i] = s1[j];
                        s1[j] = temp;
                    }
                }
            }
            //再次将字符数组转换为字符串,也可以直接利用String.valueOf(s1)转换
            String st = new String(s1);
            return st;
        }
}

Integer类

Interger类在对象中包装了一个进本类型int的值,该类提供了很多方法,能在int类型和String类型之间互相转换,还提供了处理int类型时非常游泳的其他一些常量和方法

Interger面试题:

Integer i = 1; i += 1;做了哪些事情
  1. Integer i = 1;进行了自动装箱,原句为Integer i = new Interger(1);
  2. i += 1;进行了自动拆箱。通过intValue方法
上一篇 下一篇

猜你喜欢

热点阅读