1.形式参数问题
方法的形式参数的传递: (1)基本数据类型: 形式参数是基本类型时,实际参数就是当前对应的数据值,而且形参的改变不会影响实际参数 (2)引用数据类型: 形式参数是引用数据类型,是空间地址值的传递 具体类:实际参数需要传递当前类的具体对象;方法:类名 对象名 new 类名();或者 匿名对象 new 类名; 抽象类:实际参数需要定义抽象类的子类,提供抽象类的子类(具体类); 接口:实际参数需要定义接口的子实现类或者创建子实现类的匿名对象 数组:实际参数需要传递数组对象;
2.返回值问题
方法的返回值: (1)基本数据类型: 方法的返回值是什么类型,使用对应的类型接受; (2)引用数据类型: 具体类:类名 对象名 = new 类名();或者 匿名对象; 抽象类:需要返回抽象类的子类对象; 接口:需要接口的子实现类对象,然后接口多态或者匿名对象;
1.成员外部类的成员内部类
成员内部类可以存在一些修饰符号: 1)可以使用privatexiushi,可以保证数据的安全性; 2)成员内部类还可以加入static修饰 访问外部类的成员,只能是静态的 非静态的成员内部类中,是不能存在静态方法的
2.内部类的间接访问和直接访问
3.关于局部内部类
局部内部类也可以访问外部类的成员变量,包括私有; 局部内部类访问局部变量,局部变量可以访问吗?局部变量有什么要求 jdk7或者jdk7之前,局部变量必须显示加入final修饰 jdk8的jvm已经优化,此时局部变量就是常量 局部变量的生命周期是随着方法的调用而存在,随着方法的调用结束而消失;
4.权限修饰符
同一个包内的当前类 private 默认修饰符 protected public:最大
6.Object类
每个类都有Object作为超类 所有的类都默认继承自Object
7.常用的Object类之getClass()
==:引用类型中:默认的比较的是两个对象的地址值是否一样 public final Class getClass() :获取当前正在运行的Class类对象,字符串形式(字节码文件对象)--字节码文件就一个---也是对象 获取字节码文件的第二种方式:任意java类型.class;例:Student.class
8.常用的Object类之toString
toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。返回该对象的字符串表示。 没有重写toString方法之前--->是地址值没有意义 重写之后的结果---->应该是一个容易让成员信息表达式 不需要我们自定义---使用的idea提供的toString 自动生成 alt+ins---->toString() public boolean equals(Object obj):比较对象是否相等,引用该类型比较的是地址值是否相同 ==和equals的区别: ==:如果连接都是两个基本数据类型:比如int 比较的是数据值是否相等,如果连接的是引用类型,那么比较的是地址值是否相同 equals()是Object类的方法 源码 public boolean equals(Object obj) { return (this == obj); } 如果我们不重写Object的equals方法, 默认比较的是两个引用类型的地址值是否相同, 如果重写了equals方法而且同时重写了hashCode()比较的是成员信息是否相同!