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());
// } }

java新手笔记18 类比较的更多相关文章

  1. java新手笔记9 类的封装示例

    1.bank类 package com.yfs.javase; //类封装 public class BankCard { //属性 int balance;//默认0 实例变量 分配给每个对象一个 ...

  2. java新手笔记5 类

    1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5 ...

  3. java新手笔记11 类的静态属性、方法(单例)

    1.Person类 package com.yfs.javase; public class Person { String name;//每个对象上分配 与对象绑定 int age; char se ...

  4. java新手笔记14 类继承示例

    1.Person package com.yfs.javase; public class Person { private String name; private int age; private ...

  5. JAVA自学笔记18

    JAVA自学笔记18 1.Map接口: 1)功能: 2) Map<String,String>m=new HashMap<String,String>(); //添加元素,元素 ...

  6. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  7. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  8. java新手笔记8 包

    1.main函数 public class MainParam { //考察main 方法的参数 args //运行时可以传入参数 参数类型 String public static void mai ...

  9. java新手笔记3 运算符&循环

    1.包 2.运算符 public class Operator { public static void main(String[] args) { int a = 5; System.out.pri ...

随机推荐

  1. 洛谷P1238 走迷宫

    洛谷1238 走迷宫 题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束点都是用两个 ...

  2. 如何给Windows添加自动启动的程序

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:如何给Windows添加自动启动的程序.

  3. .NET托管代码和非托管代码

    .net托管代码是运行在.NET FRAMEWORK上的,类似于JAVA虚拟机托管代码:属安全代码,因为不涉及指针,但相对性能上较低,C#写出来的东西就可以认为是托管代码非托管代码:非安全的,可以使用 ...

  4. Http、Socket的区别

    转自:http://jingyan.baidu.com/article/08b6a591e07ecc14a80922f1.html 网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层 ...

  5. windows批量创建用户

    一.建立用户的命令行语法: 建立用户:net  user  用户名  密码  /add           (如:net user test 123 /add)  提升权限:net  localgro ...

  6. error while loading shared libraries: libgtk-x11-2.0.so.0 2014-05-12 22:49:34

      http://askubuntu.com/questions/356605/ubuntu-13-10-64-bit-machinarium-error-while-loading-shared-l ...

  7. get-random生成电话号码

    "138"+((0..9|Get-Random -count 10) -join $null) From:http://blog.csdn.net/shrekz/article/d ...

  8. linux环境下tcpdump源代码分析

    Linux 环境下tcpdump 源代码分析 韩大卫@吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分 ...

  9. [Angular 2] Create Angular 2 Porject with Angular CLI

    Install: npm i -g angular-cli Create a project: ng new hello-angular2 Run the project: cd hello-angu ...

  10. springMVC项目引入jstl标签库若干问题的总结

    中午,不知道动到项目的哪个地方了,之前在联系人列表页面用的好好的jstl标签库突然报错了:<%@taglib prefix="c" uri="http://java ...