Java Class10

Java Class10

内部类

首先整理类下的几大成员

属性:

方法:

构造器:

初始化块:

内部类:

public class A {
    private int age;//属性
    
    public void method(int age){//方法
        this.age=age;
    }
    
    public A(){//构造器
        System.out.println(age+10);
    }
    
    {
        System.out.println(age+100);//初始化块
    }
    
    class A1{//内部类
        
    }
}

匿名内部类

匿名内部类就是没名内部类,就是说他行使了内部类的功能,但是没有名字来命名。

public class B {
    public static void main(String[] args) {
        new IA(){//匿名内部类

            @Override
            public void go() {

            }
        };
    }
}

interface IA{
    public void go();
}

比如我想在B中实现IA下的go方法,但是接口下的方法不能直接调用需要实例化,而且现在我们没有继承关系不能直接实现方法,所以用匿名内部类的方法就是最简单方便的。在这里插入图片描述

public class B {
    public static void main(String[] args) {
        new B().plan(new IA() {
            @Override
            public void go() {
                System.out.println("2");
            }

            @Override
            public void to() {
                System.out.println("1");
            }
        },"北京").to();
    }

    IA plan(IA ia,String name){
        ia.go();
        return new IA(){

            @Override
            public void go() {
                System.out.println("3");
            }

            @Override
            public void to() {
                System.out.println("4");
            }
        };
    }
}

interface IA{
    void go();
    void to();

}

在这里插入图片描述
输出2,4

equals

一般我们会把=,==,equals方法进行比较

=

意为赋值,把等号右边的内容赋给左边
在基本类型时,是将值赋给左边
在引用类型时,是将地址赋给左边

==

相等,判断等号两边是否相等
在基本类型时,比较值是否相等
在引用类型时,比较地址是否相等

equals()

用于比较两个引用类型的值是否相等

具体解释请看=,==和equals用法与区别

equals和hashCode也经常一起讨论
他们共同用来标识对象,两个方法协同工作用来判断两个对象是否相等在这里插入图片描述
具体请看:重写equals为什么要重写hashcode

String,StringBuffer,StringBuilder

String就是字符串对象

String s1="abc";
String s2="a"+"b"+"c";

在这s2生成字符串的过程与s1并不一样,s2是引号一次就开一次堆,每次开堆过程会占用内存并影响运算速度

而StringBuffer和StringBuilder就是可以一次开辟多个空间,避免多次开堆影响效率的问题

public class C {
    public static void main(String[] args) {
        String s="OK";//定义字符串s
        s="OK1";//修改字符串的值
        String s2="OK";//定义字符串s2
        String s3="我"+"很"+"帅"+"!";//定义字符串s3

        StringBuffer sb=new StringBuffer("我");//实例化StringBuffer对象
        sb.append("很");//向StringBuffer中添加元素
        sb.append("帅1234567891234567");//向StringBuffer中继续添加元素
        System.out.println(sb.capacity());//打印此时StringBuffer的空间
    }
}

包装类型

在这里插入图片描述

public class Demo {
    Integer i=1;//自动装箱
    int j=i;//自动拆箱
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值