匿名对象类

PS本片博客写自2018.10.23,今天天气不错是个写博客的好时间
本次学习依旧是以思维导图和图片运行结果进行的。

首先是本次学习内容的思维导图在这里插入图片描述

()由于本次内容较多,设计很多算法 ,很可能记混,需要时间掌握和消化)

一、匿名内部类

我们为什么需要匿名内部类?
当我们需要调用一些接口方法或抽象类而这些东西没有子类对象,我们可以通过创建匿名内部类的方法去创建一个子类对象并可以在内部类中重写接口或抽象方法
匿名内部类的格式为
new(){
重写方法
};
匿名内部类的本质:对象
我们通过实际例子去体会
在这里插入图片描述
提供接口方法

public interface Myinterface {
    void show();
}

通过上图我们需要注意的是 匿名内部类为一个对象可以直接打点进行调用,
通过匿名内部类,方便了直接对父类方法的重写和调用,在以后的学习中会经常用用到
再次注意匿名内部类和传参可以联系到一起
在这里插入图片描述
上图就是匿名内部类作为参数进行传参的操作

二、Object类

我们知道Object是所有类的超类(父类)
而之后我们学习的string stringbuffer 都会重写object类里的方法(类似equals方法)接下来我们用思维导图的形式来介绍一下object类中的一些方法并且加以实现
(今天介绍的是部分常用object 类的方法)
在这里插入图片描述
以上为object常用类的格式以及解释
在这里插入图片描述
对比在之后还要强调

三、Scanner类

在这里插入图片描述
在之前的学习我们已经涉及到了scanner类的使用,在今天我们具体来讨论一下scanner类的方法
首先我们来解释一下 new scanner(system.in);中的system.in
System为一个类;.in为该类中的静态方法 为标准的输入流,对应着键盘录入。
在以后的学习中我们还会涉及这方面的内容 ,今天先了解这么多
以下为图示
在这里插入图片描述
再次提示一个bug
sc.nextline 可以用于录入一个字符串
但是如果在在此行代码之前录入一个整数会出现bug
在这里插入图片描述

会把回车当做字符串录入所以
我们经常使用sc.next();来进行录入字符串
以上为Scanner类

四、String

前排提示,前方高能
string为一个类但比较特殊 ,用于定义字符串。
在这里插入图片描述

常用方法接下来我们会逐一讲解
首先在string中注意的第一点是
string重写了父类Objcet中的equals方法将比较地址变成了比较内容是否相等
第二:
任何一个字符串都可以当做对象调用string里的方法
第三:
在string中定义好的字符串无法被改变只能改变的是引用在这里插入图片描述
以下为图示
需要注意的是在最后一行代码执行过后 123已经成为字符串(可以用于数字和字符串之间的转换

接下来是关于string中的判断类型的方法
在这里插入图片描述

string 的判断方法很好理解见名知意 也就不做图示了

在这里插入图片描述

以下为图示
在这里插入图片描述
注意:
截取(substring )不含头截到1=截止到0
获取(indexof)中有含头不含尾 的现象

这是string中的获取方法

在这里我们提及一下遍历数组的概念
通过循环进行遍历数组 
然后用Array.toString(arr)进行快速排序

在这里插入图片描述

string 里的转换方法 、
在这里插入图片描述

以下为图示
在这里插入图片描述

string的替换功能
在这里插入图片描述
string 除去空格的方法public String trim()
string比较的方法public int compareTo(String str)、
public int compareToIgnoreCase(String str) (无视大小写)
在这里插入图片描述

五、stringbuffer和stringbuilder

我们现在涉及一个新的概念
容器–stringbuffer
stringbuffer和string相比更加符合设计需求不需要开多余的空间释放内存、
在这里插入图片描述
stringbuffer比较简单,和string类似
所以在此省略图示
不过我们需要注意的是stringbuffer的几个属性
string比较特殊虽然是引用数据类型但是可以当做基本数据类型传递
但stringbuffer为真正的引用数据类型

在截取也依旧是含头不含尾
但stringbuffer没有重写object里的equals方法

stringbuffer和stringbuilder的方法一模一样
但安全性不一样 体现在多线程里,(多线程里会提及)

六、冒泡排序 选择排序 二分法

冒泡

public class maopao {
    public static void main(String[] args) {
        int arr[]={45,15,2,48,15,43,41};
        for(int j=0;j<arr.length;j++) {
            for (int i = 0; i < arr.length - 1-j; i++) {
                if (arr[i] > arr[i + 1]) {
                    int t;
                    t = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = t;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

选择

public class xuanze {
    public static void main(String[] args) {
        int arr[]={45,12,11,64,58,92,12,99};
        for(int j=0;j<arr.length-1;j++){
            for(int i=0+j;i<arr.length-1;i++){
                if(arr[j]>arr[i+1]){
                int t;
                t=arr[j];
                arr[j]=arr[i+1];
                arr[i+1]=t;
                }
            }

        }
        System.out.println(Arrays.toString(arr));
    }
}
二分法
public class Erfenchazhao {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入查找元素");
        int x=sc.nextInt();
        int arr[]={10,20,30,40,50,60};
        int min=0;
        int max=arr.length-1;
        int mid=0;
        while (mid<max){

             mid=(max+min)/2;
            if(x==arr[mid]){
                System.out.println(mid);
                return;
            }else if(x>arr[mid]){
                min=mid+1;

            }else if(x<arr[mid]){
                max=mid-1;
            }
            mid=(max+min)/2;
            System.out.println("");
        }
        System.out.println(mid);

    }
}

七、Arrays类

在这里插入图片描述

Arrays类的方法较少但很实用

八、基本类型包装类

当我们想用基本类型调方法时我们可以将基本数据类型转换为包装数据类型
来进行更方便的运算与处理
基本类型和包装类的对应
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
————————————————————————————————————————
int类型和string类型的转换
和""进行拼接
public static String valueOf(int i)
int – Integer – String
public static String toString(int i)
String – int
String – Integer – intValue();
public static int parseInt(String s)

以下为图示
在这里插入图片描述
注意在JDK5之后就有了自动拆装箱的特性
可以用int类型直接接收integer类型

总结:这周不算很累 ,但是内容的确变多了,不做出总结划分知识很容易将方法记混。希望经过本次博客,自己对这些方法会牢记于心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值