java ee 2019 11 7 关于常用类

1 eclipse导入项目,导出项目

2 常用类

object类

    每个类都以他为父类(他就是上帝)
	成员方法:

(1) public int hashCode()返回该对象的哈希码值

         返回值是整数类型
	    可以理解为地址值 不是实际意义的地址值 
		默认继承

(2)public final class getClass()

	 通过这个方法获取当前类的字节码文件对象
	 返回当前类的运行时类(跟反射有关)
	     了解:
		 class类下面有一个
		 public String getNAme()以String的
		 形式返回此Class对象所表示的实体名称 

}

            public class Code{
			public static void main (String[] args){
				//创建一个对象
				Student s = new  Student ();
				System.out.println(s.hashCode());//366712642哈希码值
				Student s1 = new  Student ();
				System.out.println(s1.hashCode());//1829164700
				Student s2 = new  Student ();
				System.out.println(s2.hashCode());//2018699554  每一次都不一样
				System.out.println("================================");
				Student s3 = new  Student ();
				Class c=s3.getClass();//获取当前类的字节码文件对象
				System.out.println(c);
				String str=c.getName();//获取当前字节码文件对象的全路径名称
				System.out.println(str);
				
			}
		} 
		

(3)public String toString ()

		 返回该队象的字符串表示
		 建议所有子都重写该方法(alt+shift+s-->s)
		
		 
		 默认输出对象名称  实际执行toString 没意义 要重写
		 toString()等价于 某个对象.getClass.getName()+@+integer....
		 integer   整数转换十六进制
		 重写后  toString  后获取的是对象的成员信息
		 就有意义了
 //学生类
			   class Student extends Object {
	
	  private String name ;//姓名
	  private        int age ;//年龄
	public Student() {
		super();
		
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
	//重写toString()方法
	//自动生成
	//@Override
	public String toString() {
		return  "Student [name=" + name + ", age=" + age + "]";
	}
	
	

	
	 
	 
} 

//测试类   
 class Code{
	public static void main(String[] args){
		//创建学生对象
		Student s=new Student();
		//toString 会重写
		Student ss=new Student("周杰伦",38);
		Student sss=new Student("周杰伦",38);
		System.out.println(ss);//Student [name=周杰伦, age=38]

	     System.out.println(sss);//Student  [name=周杰伦, age=38]
		System.out.println(ss==sss);//flase 地址值不一样
	}
}

(4) public boolean equals 默认比较两个对象地址值是否相同

		 有条件
		       a) 比较两个类型是否是一致的类型
			   b)比较地址值没有意义 要比较值
			   
			   
			   
			   子类要重写 才会有意义
			   基本类型  比较的是数值是否相同
			   引用类型  比较的是地址值是否相同
			   
		 class Student extends Object {
	
	  private String name ;//姓名
	  private        int age ;//年龄
	public Student() {
		super();
		
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	
	
	

	
	 
	 
} 
				  class Code{
					   public static void main(String[] args){
						  Student s1=new Student("李荣浩",38); 
						  Student s2=new Student("李荣浩",38);
						  System.out.println(s1==s2);//比较的是地址 没有意义
						  Student s3=s1;
						  //重写后(用工具自动会生成)
						  System.out.println(s1==s2);//ture
					   }
				   }

(5) protected void finalize () throws Throwable (异常类;范围最大的)

			   当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
           什么时候回收不用的对象或者一些变量,在GC空闲时回收...(System类使用

protected object clone() 建立并返回此对象的一个副本(复制该对象的字段)
throw CloneNotsuppertedException(浅克隆)

	  class Student extends Object implements Cloneable {
	
	  private String name ;//姓名
	  private        int age ;//年龄
	public Student() {
		super();
		
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	//重写Clone方法
	protected Object clone() throws CloneNotSupportedException {
		return super.clone();
	}
	
 }
	 class Code{
		 public static void main (String [] args) throws CloneNotSupportedException {
			 Student s=  new Student("马云", 45); 
			 System.out.println(s.getName()+"---"+s.getAge());//马云  45 
			 //当前对象的类实现了 cloneable接口就可以使用clone
			 Object obj=s.clone();//用obj接收
			 Student s2=(Student) obj;//强制转换
			 System.out.println(s2.getName()+"---"+s2.getAge());
			 //马云  45
		 }
	 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值