java基础-常用API

Math

Math 包含执行基本数字运算的方法

没有构造方法,如何使用类中的成员呢?
看类的成员是否都是静态的,如果是,通过类名就可以直接调用


Math类的常用方法.png
  • 范例
    public static void main(String[] args) {

        // 绝对值
        System.out.println(Math.abs(88));
        System.out.println(Math.abs(-88));

        // 返回大于或等于参数的最小double值,等于一个整数
        System.out.println(Math.ceil(12.34));
        System.out.println(Math.ceil(12.56));
    }

System

System 包含几个有用的类字段和方法,它不能被实例化


System类常用方法.png
    public static void main(String[] args) {

/*        System.out.println("开始");
        System.exit(0); // 终止当前运行的 java 虚拟机,非零表示异常终止

        System.out.println("结束");*/
        System.out.println("---------");
        System.out.println(System.currentTimeMillis()); // 返回当前时间毫秒
        System.out.println(System.currentTimeMillis() * 1.0 / 1000 / 60 / 60 / 24 / 365 + "年");

        long start = System.currentTimeMillis();
        for (int i = 0; i < 10000; i++) {
            System.out.println(i);
        }
        long end = System.currentTimeMillis();
        System.out.println("共耗时: " + (end - start) + "秒");
    }

Object

Object 是类层次结构的根,每个类都可以讲 Object 作为超类,所有的类都直接或间接的继承该类
构造方法: public Object()
回想面向对象中,为什么说子类的构造方法默认访问的是父类的无参构造方法?
因为它们的顶级父类只有无参构造方法

public class student {
    // 成员变量
    String name;
    private int age;

    public student() {
    }

    public student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    @Override
    public String toString() {
        return "student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
    public static void main(String[] args) {

        student s = new student();
        s.setName("孙悟空");
        s.setAge(30);
        System.out.println(s); //com.student@1b6d3586
        System.out.println(s.toString()); //com.student@1b6d3586

        /*public void println(Object x) { // s = x
            String s = String.valueOf(x);
            synchronized (this) {
                print(s);
                newLine();
            }
        }
        public static String valueOf(Object obj) { // obj = s
            return (obj == null) ? "null" : obj.toString(); // s是对象,不是null,所以返回obj.toString();
        }
        public String toString() {
            return getClass().getName() + "@" + Integer.toHexString(hashCode());
            // com.student@1b6d3586
        }*/
    }

Object equals

public class Student {
    private String name;
    private int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    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;
    }

    @Override
    public boolean equals(Object o) {
        // this = s1
        // o = s2
        
        // 比较地址是否相同,如果相同,直接返回true
        if (this == o) return true;
        
        // 判断参数是否为null 判断两个对象是否来自同一个类
        if (o == null || getClass() != o.getClass()) return false;

        // 向下转型
        Student student = (Student) o; // student = s2

        // 比较年龄是否相同
        if (age != student.age) return false;
        // 比较姓名是否相同
        return name != null ? name.equals(student.name) : student.name == null;
    }
}
    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("孙悟空");
        s1.setAge(30);

        Student s2 = new Student();
        s2.setName("孙悟空");
        s2.setAge(30);

        // 比较两个对象的内容是否相同
        System.out.println(s1 == s2); // false 因为s1 s2 都是地址值,肯定不同

        System.out.println(s1.equals(s2)); // false
        /*
        public boolean equals(Object obj) {
        // this = s1
        // obj = s2
        // 还是比较的地址值
            return (this == obj);
        }
         */
    }
object常用方法.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,577评论 0 11
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 4,490评论 0 2
  • Java基础笔记(一) 面向对象 [TOC] 1、定义类 其中的修饰符可以是public、final、abstra...
    小小少年Boy阅读 2,944评论 0 1
  • 前言:最近感冒的不太想去面试,在家就对Java se的基础做了一些小总结 1.JDK和JRE的区别 一 基础知识 ...
    AntCode阅读 4,801评论 0 1
  • 其实温度还可以,但就是总感觉冷,手脚总是冰凉。昨天晚上睡得有点晚,准备试讲的ppt,睡的时候已经一点多了。今天早起...
    大梦斋阅读 1,514评论 0 1