Javase—lang包和一些基本类

1.java.lang包:

1.java最基础的包,提供每个程序都需要使用的类:包装类,Object,Math,String等

2.特殊的包,无需手动导入,系统会自动导入


2.System类

1.代理系统的类,final类

2.提供了很多属性和方法:

System.out.println();//输出并换行

System.err.println();//输出错误信息(高亮显示)

System.in //通往控制台的输入流

System.arraycopy();//复制出一个完全相同的数组

System.exit(0);//退出虚拟机



3. 包装类
1.定义:java中为每个 基本数据类型定义了一个与之 对应的类,称为包装类
2.自动拆装包:在JDK5.0以后包装类可以直接与基本类型相互转换
3.类型与对应关系:
Byte  -> byte
Short -> short
Integer -> int;
Long    ->long
Boolean ->boolean
Character -> char
Float   ->float
Double ->double
4.存在原因:
1.包装类中提供了很多用于处理当前数据类型的常用方法
2.java是面向对象的,很多类中的参数类型都是对象,而基本数据类型不是对象,所以提供了与之对应的包装类


4. Math类
1.关于数学操作的类,含有大量的 静态常量和静态方法,不允许实例化
2.含有很多数学方法,如三角,指对,常用的数学算法等

3.例如:max;min;ceil;floor;round;random;log;exp;sqrt等

4.常用方法测试源代码:

package com.Oracle._Pratice;
/**
 * 对Math常用类的测试
 * @author cyz
 *
 */
public class TestMath {

	public static void main(String[] args) {
		//两者中较大的值
		System.out.println(Math.max(8, 4));
		//两者中较小的值
		System.out.println(Math.min(8, 4));
		System.out.println();
		//取一个0-1之间的随机数
		System.out.println(Math.random());
		System.out.println();
		//取整
		System.out.println(Math.floor(1.23));	//向下取整
		System.out.println(Math.floor(4.87));
		System.out.println(Math.ceil(1.23));	//向上取整
		System.out.println(Math.ceil(4.87));
		System.out.println(Math.round(1.23));	//四舍五入
		System.out.println(Math.round(4.87));
		System.out.println();
		//绝对值
		System.out.println(Math.abs(3));
		System.out.println(Math.abs(-3));
		System.out.println();
		//e的3次幂
		System.out.println(Math.exp(3));
		System.out.println();
		//2的5次幂
		System.out.println(Math.pow(2, 5));
		System.out.println();
		//100的根方值
		System.out.println(Math.sqrt(100));
	}
}

运行结果:



5. Object类
1.定义:所有类的父类,没有自定义父类的类相当于继承了Object
2.定义了所有类都需要使用的方法
3.11个方法(1、2、3可以利用右键—>Source—>Generate自动生成)

1.protected Object clone()

1、创建一个完全相同的对象

2、throws CloneNotSupportedException

2.public boolean equals(Object obj)

1、判断两对象内容是否相等

2、性质:自反性,对称性,传递性,一致性

3、任意非空引用值与null判断结果为false

3.public int hashCode()

1、返回对象的哈希码值

2、用处举例:

4.protected void finalize()

1、当一个对象被标记为垃圾时,JVM可能会调用此方法

2、throws Throwable

5.public String toString();

1、将对象转换为字符串,SYstem中会自动调用此方法

4.常用方法测试源代码:

package com.Oracle._Pratice;

public class TestObject_Person {
	//属性
	String name;
	int age;
	//构造方法
	public TestObject_Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public TestObject_Person() {
		super();
	}
	//getter和setter
	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;
	}
	//hashCode和equals:必须同时存equals才能正确使用
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + age;
		result = prime * result + ((name == null) ? 0 : name.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		TestObject_Person other = (TestObject_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;
		return true;
	}
	
}
package com.Oracle._Pratice;

public class TestObject_Student extends TestObject_Person {

	public TestObject_Student(String name, int age) {
		super(name, age);
	}
	public TestObject_Student() {
		super();
	}
	//仅存在equals,不能正确进行比较
	@Override
	public boolean equals(Object obj) {
		if(obj==this) {
			return true;
		}
		if(obj==null) {
			return false;
		}
		if(obj instanceof TestObject_Student) {
			TestObject_Student s=(TestObject_Student)obj;
			if(!s.name.equals(getName())) {
				return false;
			}
			if(s.age!=getAge()) {
				return true;
			}
			return false;
		}
		
		return false;
	}
	//将对象输出显示
	@Override
	public String toString() {
		return "TestObject_Student [name=" + name + ", age=" + age + "]";
	}	
	
}
package com.Oracle._Pratice;

public class TestObject_Pratice1 {

	public static void main(String[] args) {
		//能正确进行比较:同时存在hashCode和equals
		TestObject_Person p1=new TestObject_Person("wang",18);
		TestObject_Person p2=new TestObject_Person("wang",18);
		TestObject_Person p3=new TestObject_Person("zhang",30);
		//不能正确进行比较:仅存在equals
		TestObject_Student s1=new TestObject_Student("yang",20);
		TestObject_Student s2=new TestObject_Student("yang",20);
		TestObject_Student s3=new TestObject_Student("zhang",30);
		System.out.println(p1.equals(p2));
		System.out.println(p1.equals(p3));
		System.out.println(s1.equals(s2));
		System.out.println(s1.equals(s3));
		System.out.println();
		
		//将对象输出显示
		System.out.println(p1);	//存在toString方法
		System.out.println(s1);	//不存在toString方法
	}

}
运行结果:





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值