• java新手笔记18 类比较


    1、Shap类

    package com.yfs.javase;
    
    public class Shape /*extends Object */{  //默认继承object  object方法全部继承
    	//计算面积方法
    	public double getArea() {
    		System.out.println("计算面积");
    		return 0;
    	}
    
    }
    

     2.Circle类

    package com.yfs.javase;
    
    public class Circle extends Shape {
    	
    	private double r;
    	
    	public Circle(double r) {
    		this.r = r;
    		System.out.println("创建圆形面积");
    	}
    	
    	public double getArea() {//覆盖父类的方法
    		System.out.println("计算圆形面积...");
    		return 3.14 * r * r;
    	}
    
    }
    

     3.Rangton类

    package com.yfs.javase;
    
    public class Rangton  extends Shape {
    	
    	private double width;
    	private double length;
    	
    	public Rangton(double width, double length) {
    		this.width = width;
    		this.length = length;
    		System.out.println("创建矩形面积");
    	}
    	
    	public double getArea() {
    		System.out.println("计算矩形面积...");
    		return width * length;
    	}
    
    }
    

     4.Trantangel类

    package com.yfs.javase;
    
    public class Trantangle  extends Shape {
    	
    	private double height;
    	private double width;
    	
    	public Trantangle(double height, double width) {
    		this.height = height;
    		this.width = width;
    		System.out.println("创建三角形面积");
    	}
    	
    	public double getArea() {
    		System.out.println("计算三角形面积...");
    		return 1.0 / 2 * width * height;
    	}
    
    
    }
    

     5.Shap 测试

    package com.yfs.javase;
    
    import java.util.Date;
    import java.util.Random;
    import java.util.Scanner;
    
    public class Demo1 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Shape shape = new Shape();
    		shape.getClass();
    		
    
    		Object obj = new Object();// 所有对象的基类
    		// 方法
    		boolean isTrue = obj.equals(shape);
    		System.out.println(isTrue);
    		obj.getClass();
    		obj.hashCode();
    		obj.toString();
    		//obj.notify();
    		
    		obj = shape;
    		
    		obj = new Random();
    		
    		obj = new Scanner(System.in);
    		
    		Circle c = new Circle(2);
    		
    		obj = c;
    		shape = c;
    		
    		obj = shape;
    		//继承object
    		c.getClass();
    		
    		method(shape);
    		
    		//method(new Date());
    
    	}
    	
    	public static void method(Object obj) {
    		//obj.getArea();
    		Shape s = (Shape)obj;
    		s.getArea();
    	}
    
    }
    

     6.Person 类(自定义比较)

    package com.yfs.javase;
    
    public class Person {
    
    	private String name;
    	private char sex;
    	private int age;
    
    	public Person() {
    
    	}
    
    	public Person(String name, char sex, int age) {
    		this.name = name;
    		this.sex = sex;
    		this.age = age;
    	}
    
    	@Override
    	public String toString() {
    		return "Person [name=" + name + ", sex=" + sex + ", age=" + age + "]";
    	}
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    
    	public char getSex() {
    		return sex;
    	}
    
    	public void setSex(char sex) {
    		this.sex = sex;
    	}
    
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		this.age = age;
    	}
    
    	public void sayHello() {
    		System.out.println(name + " Hello ....");
    	}
    
    	@Override
    	public int hashCode() {
    		final int prime = 31;
    		int result = 1;
    		result = prime * result + age;
    		result = prime * result + ((name == null) ? 0 : name.hashCode());
    		result = prime * result + sex;
    		return result;
    	}
    
    	@Override
    	public boolean equals(Object obj) {
    		if (this == obj)
    			return true;
    		if (obj == null)
    			return false;
    		if (getClass() != obj.getClass())
    			return false;
    		Person other = (Person) obj;
    		if (age != other.age)
    			return false;
    		if (name == null) {
    			if (other.name != null)
    				return false;
    		} else if (!name.equals(other.name))
    			return false;
    		if (sex != other.sex)
    			return false;
    		return true;
    	}
    	
    
    //	@Override
    //	public int hashCode() {
    //		return 123;
    //	}
    //
    //	@Override //自定义类 覆盖equals方法 自己定义对象比较规则
    //	public boolean equals(Object obj) {
    //		Person other = (Person)obj;
    //		return this.name.equals(other.name) && sex == other.sex && age == other.age;
    //	}
    }
    

     7.Person测试

    package com.yfs.javase;
    
    public class Demo2 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Person p1 = new Person();
    		System.out.println("p1.hashCode() : " + p1.hashCode());
    		
    		Person p2 = new Person();//hashCode对象的散列码
    		System.out.println("p2.hashCode() : " + p2.hashCode());
    		
    		Person p3 = new Person();
    		System.out.println("p3.hashCode() : " + p3.hashCode());
    		
    		p1.sayHello();
    		p2.sayHello();
    		p3.sayHello();
    		
    		System.out.println("p1 == p2 ? " + (p1 == p2));
    
    	}
    
    }
    

     8.Person类

    package com.yfs.javase;
    
    public class Demo3 {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Person p1 = new Person("张三",'男',20);
    		
    		Person p2 = new Person("张三",'男',20);
    		
    		System.out.println("p1 == p2 : " + (p1 == p2));
    		
    		//比较对象中属性只是否相等
    		System.out.println(p1.getAge() == p2.getAge());
    		System.out.println("==  " + (p1.getName() == p2.getName()));
    		System.out.println("equals : " + p1.getName().equals(p2.getName()));
    		System.out.println("p1.equals(p2) : " + p1.equals(p2));
    		System.out.println("======================");
    		System.out.println("p1.hashcode :" + p1.hashCode());
    //		String s1 = new String("abc");
    //		String s2 = new String("abc");
    //		System.out.println("s1 == s2 : " + (s1 == s2));
    //		System.out.println("s1.equals(s2) : " + s1.equals(s2));//String 类覆盖equals方法
    		
    		Object obj = p1;
    		System.out.println(obj.getClass().getName());
    //		
    
    	}
    
    }
    
  • 相关阅读:
    04-Bootstrap的插件
    03-Bootstrap学习
    02-移动端单位介绍
    01 响应式页面-@media介绍,
    14-jQuery补充
    13-jQuery的ajax
    12-事件委托(事件代理)
    11-jQuery的事件绑定和解绑
    10-事件对象
    09-JS的事件流的概念(重点)
  • 原文地址:https://www.cnblogs.com/feilongblog/p/4675684.html
Copyright © 2020-2023  润新知