1.for循环的另一种写法
常用写法:
for(int i=0;i<n;ix==){}
另一种写法:
for(int i:nums){}
2.万类之祖Object
所有的类,都简介或者直接继承自 Object类
可以看源码学习:
Object类中的方法
// >> TODO hashCode 和 equals是我们最常覆盖的两个方法
// >> TODO 覆盖的原则是,equals为true,hashCode就应该相等。这是一种约定俗成的规范
// >> TODO 即equals为true是hashCode相等的充分非必要条件,hashCode相等是equals为true的必要不充分条件
toString方法
// >> TODO 因为toString是Object里的方法,所以任何一个Java的对象,都可以调用这个方法
// >> TODO 内容好像不大全,补充一下?
System.out.println(strBuilder.toString());
System.out.println(m100);
3.native
public final native Class<?> getClass();
native关键字表示该方法没有方法体,其功能采用本地代码(c,c++,汇编等)实现的。
4.Class类
Class类是类的类,也就是说Class的每一个实例都是一个class,可以通过Class类里的方法来获取所指向类的信息或者对其进行操作;
public class ClassOfClassAppMain {
public static void main(String... args) throws NoSuchFieldException, NoSuchMethodException {
LittleSuperMarket superMarket = new LittleSuperMarket("大卖场",
"世纪大道1号", 500, 600, 100);
MerchandiseV2 m100 = superMarket.getMerchandiseOf(100);
// >> TODO
// Object类里的getClass方法,可以得到
Class clazz = ShellColorChangePhone.class;
System.out.println(clazz.getName());
System.out.println(clazz.getSimpleName());
System.out.println(clazz.);
// TODO 通过一个类的Class实例,可以获取一个类所有的信息,包括成员变量,方法,等
// Field countField = clazz.getField("count");
// Field nameField = clazz.getField("count");
Field countField = clazz.getField("count");
// >> TODO 变长参数和它的等价形式
// Method equalsMethod = clazz.getMethod("equals", Object.class);
Method buyMethod = clazz.getMethod("buy", int.class, String.class); //返回一个名字为buy,参数为String类型的方法
Method equalsMethod = clazz.getMethod("equals", Object.class);
clazz.getMethod("buy",int.class)
}
}