文档版本 | 开发工具 | 测试平台 | 工程名字 | 日期 | 作者 | 备注 |
---|---|---|---|---|---|---|
V1.0 | 2016.03.03 | lutianfei | none |
1、File-> New ->Project 选Java Project
2、 命名工程后选择Finish
3、 新建一个包
4、新建一个类
5、 编译
6、运行
根据大纲视窗中的不同图标,判断不同的变量状态。
选中某个类后按F4
可以看到=该类的继承状态。
window
-> Preferences
-> General
-> Appearance
-> Colors And Fonts
-> Java Edit Text Font
控制台:
Debug
-> Console font
其他文件
Basic
-> Text Font
window
->Perspective
-> Reset Perspective
Window
–Show View
—Console
内容辅助键
格式化 ctrl
+shift
+f
ctrl
+shift
+o
ctrl
+/
ctrl
+shift
+/
ctrl
+shift
+\
alt
+上/下箭头
F3
或者Ctrl
+鼠标点击)Alt
+ Shift
+s
+c
Alt
+ Shift
+s
+o
自动生成get/set方法 : Alt
+ Shift
+s
+r
继承抽象类,或者实现接口
package cn.itcast_03;
public class Cat extends Animal {
@Override
public void eat() {
// TODO Auto-generated method stub
System.out.println("Hello Cat");
}
}
@Overide
是注解的意思,即这个方法是重写父类的,如果和父类名字不一致就会报错。项目
–右键–Export
–Java
–Jar
–自己指定一个路径和一个名称–Finish
单步调试:F6
断点查看基本数据类型和引用数据类型的参数传递问题
public int hashCode()
public final Class getClass()
返回此 Object 的运行时类
B:可以通过Class类中的一个方法,获取对象的真实类的全名称。
Student s = new Student();
Class c = s.getClass();
String str = c.getName();
System.out.println(str); // cn.itcast_01.Student
//链式编程
String str2 = s.getClass().getName();
System.out.println(str2);
public String toString(): 返回该对象的字符串表示,默认是全路径+@
+哈希值的十六进制表示。
toHexString
是Integer
类下的一个静态方法:把一个整数转成一个十六进制表示的字符串eg:
//两行代码结果一致
System.out.println(s.getClass().getName() + ‘@‘
+ Integer.toHexString(s.hashCode()));
System.out.println(s.toString());
注:直接输出一个对象的名称,其实就是调用该对象的toString方法。
public boolean equals (Object obj) : 指示其他某个对象是否与此对象“相等”。
protected void finalize(): 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。用于垃圾回收,但是什么时候回收不确定。
protected Object clone():创建并返回此对象的一个副本
Cloneable
:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。这个接口是标记接口,告诉我们实现该接口的类就可以实现对象的复制了。
public class Student implements Cloneable {
private String name;
private int age;
public Student() {
super();
}
public class StudentDemo {
public static void main(String[] args) throws CloneNotSupportedException {
//创建学生对象
Student s = new Student();
s.setName("林青霞");
s.setAge(27);
//克隆学生对象
Object obj = s.clone();
Student s2 = (Student)obj;
System.out.println("---------");
System.out.println(s.getName()+"---"+s.getAge());
System.out.println(s2.getName()+"---"+s2.getAge());
//以前的做法
Student s3 = s;
System.out.println(s3.getName()+"---"+s3.getAge());
System.out.println("---------");
//其实是有区别的
s3.setName("刘意");
s3.setAge(30);
System.out.println(s.getName()+"---"+s.getAge());
System.out.println(s2.getName()+"---"+s2.getAge());
System.out.println(s3.getName()+"---"+s3.getAge());
}
}
toString方法的重写
Alt
+ Shift
+s
+s
equals
方法的重写:
Alt
+ Shift
+s
+h
Eg: 重写equals方法:
@Override
public boolean equals(Object obj) {
//name是String类型的,而String是引用类型的,所以,在这里不能直接用==比较,应该用equals()比较
//String的equals()方法是重写自Object类的,比较的是字符串的内容是否相同
//this -- s1
//obj -- s2
//我们要使用的是学生类的特有成员变量,所以要向下转型
Student s = (Student)obj; //s -- obj -- s2;
if(!(obj instanceof Student)){
return false;
}
//如果是就继续
Student s = (Student)obj;
//System.out.println("同一个对象,还需要向下转型并比较吗?");
return this.name.equals(s.name) && this.age == s.age;
}
==
的用法:
equals
只能比较引用类型,默认情况下比较的是地址值是否相同,但可以根据需求重写该方法。
instanceof
: 判断对象名是否是该类名的一个对象
对象名
instanceof
类名
原文:http://www.cnblogs.com/lutianfei/p/5243844.html