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

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

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

基本类型

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.

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

权限修饰符

四个权限修饰符的等级排列:
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

内部类

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

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

匿名内部类

  1. 具备内部类的简化形式。

  2. 存在的前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。

  3. 本质:一个继承了该类或实现了该接口的子类匿名对象。

  4. 格式:
    new 类名或者接口名(){
    重写方法;
    } ;

  5. 普通类的匿名内部类对象
    public class MyTest {
    public static void main(String[] args) {
    VV vv= new VV(){
    @Override
    public void test() {
    }
    };
    vv.test();
    }
    }
    class VV {
    public void test() {
    }
    }

  6. 抽象类的匿名内部类对象
    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();
}

Object

public boolean equals(Object obj)
指示相比较的两个对象是否相等 比的是地址。

public final Class getClass()
返回此object的运行时类,可以通过class类中的一个方法,获取对象的真实类的全名称。

public int hashCode()
返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。同一对象哈希码值一般相同。哈希码值是对象的逻辑地址值。

public String toString()
返回该对象的字符串表示

发布了43 篇原创文章 · 获赞 7 · 访问量 1784

猜你喜欢

转载自blog.csdn.net/y18791050779/article/details/102712124