Javase—lang包和一些基本类,javaselang包
分享于 点击 21627 次 点评:138
Javase—lang包和一些基本类,javaselang包
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方法 } }
相关文章
- 暂无相关文章
用户点评