JavaSE------方法参数类型及返回值,权限修饰符,内部类,匿名内部类

1、方法参数以及返回值问题研究

1、形式参数是基本类型要的是具体数值,是类名要的是子类的对象,是抽象名要的是抽象类的子类对象,是接口名要的是接口的实现类的子类对象。

  • 基本类型
public class MyTest {
    public static void main(String[] args) {
              Student student = new Student();
        setStudent(student,100);
        student.show(new Student(),18);
        System.out.println(student.num); //18
    }
    private static void setStudent(Student student,int num) {
        student.num=num;
    }
}
class Student{
    int num=20;
    public void show(Student student,int num){
        this.num=num;
    }
}
  • 抽象类型
public class MyTest2 {
    public static void main(String[] args) {
        MyClasss aa = new AA();
        setMyClss(aa, 200);
        System.out.println(aa.num); //10
    }

    private static void setMyClss(MyClasss myClss, int num) {
        myClss.show(num);
    }
}


abstract class MyClasss {
    int num = 10;

    public abstract void show(int num);
}

class AA extends MyClasss {
    int num = 20;

    @Override
    public void show(int num) {
        this.num = num;
    }
}
  • 接口类型
public class MyTest3 {
    public static void main(String[] args) {

        MyInterface bb = new BB();
        setInterface(bb,600);
        System.out.println(bb.num);//100
        System.out.println(MyInterface.num); //100
    }

    private static void setInterface(MyInterface myInterface,int num) {
        myInterface.show(num);

    }
}

interface MyInterface{
    int num=100;
    void show(int num);
}

class BB implements MyInterface{
        int num=500;
    @Override
    public void show(int num) {
        this.num=num;
    }
}

2、返回值类型是基本类型返回的是具体值,是类名返回的是类的子类对象,是抽象类要的是该抽象类的子类对象,是接口要的是该接口的实现类的对象。

2、权限修饰符

四个权限修饰符的等级排列:
public>protected>默认的>private

  1. 修饰符:
    权限修饰符:private,默认的,protected,public
    状态修饰符:static,final
    抽象修饰符:abstract

  2. 修饰类的关键字:
    权限修饰符:默认修饰符,public
    状态修饰符:final
    抽象修饰符:abstract

  3. 修饰成员变量的关键字:
    权限修饰符:private,默认的,protected,public
    状态修饰符:static,final

  4. 修饰构造方法的关键字:
    权限修饰符:private,默认的,protected,public

  5. 修饰成员方法的关键字:
    权限修饰符:private,默认的,protected,public
    状态修饰符:static,final
    抽象修饰符:abstract

  6. 除此以外的组合规则:
    成员变量:public static final
    成员方法:public static
    public abstract
    public final

3、内部类

概述:在类里面定义了一个类,这个类就被称作把内部类。

1.内部类可以直接访问外部里的成员,包括其私有的;但是外部类要想访问内部类必须要创建其对象。
2.访问成员内部类的格式:外部类名.内部类名 对象名=外部类对象.内部类对象;
3.成员内部类被静态修饰后的访问方式是格式:外部类名.内部类名 对象名=new 外部类对象.内部类对象;

4、匿名内部类

  1. 具备内部类的简化形式。
  2. 存在的前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。
  3. 本质:一个继承了该类或实现了该接口的子类匿名对象。
  4. 格式:
 new 类名或者接口名(){
  重写方法;
 } ;
  1. 普通类的匿名内部类对象
  public class MyTest {
    public static void main(String[] args) {
     VV vv=  new VV(){
            @Override
            public void test() {
            }
        };
      vv.test();
    }
}
class VV {
    public void test() {
    }
}
  1. 抽象类的匿名内部类对象
    public class MyTest2 {
    public static void main(String[] args) {
        set(new MyClass() {
            @Override
            public void show() {
                System.out.println("aaaaaaaaaaaaaaaaaa");
            }
        });
       MyClass my= new MyClass() {
            @Override
            public void show() {
                System.out.println("aaaaaaaabbbbbbbbbbbbbbbbbbbaaaaaaaaaa");
            }
        };
        set(my);
    public static void set(MyClass myClass){
        myClass.show();
    }

    public static void set2(WW ww) {
        ww.hehe();
    }
}

abstract class MyClass{
    public abstract void show();
}

interface WW{
    void hehe();
}

5、Object

  1. public boolean equals(Object obj)
    指示相比较的两个对象是否相等 比的是地址。
  2. public final Class getClass()
    返回此object的运行时类,可以通过class类中的一个方法,获取对象的真实类的全名称。
  3. public int hashCode()
    返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。同一对象哈希码值一般相同。哈希码值是对象的逻辑地址值。
  4. public String toString()
    返回该对象的字符串表示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值