我的java学习随笔:Object,接口与包装类

Object类

 先定义一个类Student
  • java中所有类有共同的父类Object
  • 有很多可以重写的方法例如:toString equals
    • 在进行两个对象是否相等的比较中,如调用默认的equals方法,将进行hasCode等等的比较.这往往是我们所不需要的. 所以,我们要重写equals方法,给出指定比较方法,利于我们做比较判断
    • toString方法也往往需要重写,可以给出我们需要的内容,而不是默认的给出hasCode值
public class student {
	private int num;
	private String name;
	public student(int num, String name) {
		//super();java中所有类有共同的父类Object
		this.num = num;
		this.name = name;
	}
	public int getNum() {
		return num;
	}
	
	public void setNum(int num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	//Object类方法重写,hashcode方法也能重写
	@Override
	public String toString() {
		return this.name+"的编号为:"+this.num;
	}
	@Override
	public boolean equals(Object obj) {
		student objStudent=(student)obj;
		return this.name.equals(objStudent.name);
	}
}
		student s1=new student(1,"小黄");
		student s2=new student(2,"小明");
		System.out.println(s1.equals(s2));//测试重写的Object方法
		System.out.println(s2.toString());
		//若想让基本类型参与面向对象的开发,就需要包装类。包装类可以使基本数据处于类中,应用到面向对象中。

包装类

  • valueOf方法用于将数值类型转化为对应的包装类
  • xxxValue方法用于将包装类转化为对应基础类型
  • parseXxx用于将字符串转化为对应包装类,这个是很常用的
	public static void main(String[] args) {
		//包装
		Integer a=Integer.valueOf(10);
		Integer a4=Integer.valueOf("12");
		Integer a2=new Integer(66);//过时
		Integer a3=new Integer("11");//过时的重载构造函数
		System.out.println(a);
		System.out.println(a2);
		System.out.println(a3);
		System.out.println(a4);
		//拆箱
		int A=a.intValue();
		System.out.println(A);
		int B=Integer.parseInt("3");//将字符串转换数字
		System.out.println(B);
		String C=Integer.toString(B);//将数字转换成字符串
		System.out.println(C+A);
	}

接口

  • 接口可以多继承,接口中只能声明常量和方法,起到一个指引的作用
  • 在我看来:接口就是一种规则,让实现接口的人必须遵守这个规则
//面向接口编程,接口可以多继承,接口中只能声明常量和方法,起到一个指引的作用
public interface people {
	final String say="我是人";
	public void deo();
	//不行public int uu;
}

class father implements people{
	@Override
	public void deo() {
		System.out.println(say+"your father");
	}
}

class mather implements people{
	@Override
	public void deo() {
		System.out.println(say+"your mather");
	}
}
		//面向接口编程的优势
		people p1=new father();
		people p2=new mather();
		p1.deo();//避免了对原方法的修改,直接用接口调用,面向接口编程
		p2.deo();
 有人说,接口中不能定义方法 这个很片面的,在后续的java版本中,可以用default关键字定义接口的默认实现方法.private关键字控制接口中的该方法为私有方法,用static关键字修饰接口的静态方法与静态变量,这个静态方法只能通过接口名调用

暂时能想起来的只有这么多了,可能还不是很全面.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值