首页 > 编程语言 >JavaApi---第一节

JavaApi---第一节

时间:2024-11-21 09:43:32浏览次数:3  
标签:Object equals 第一节 --- Person JavaApi 父类 方法 public

JavaApi高级编程

JavaApi

  • 什么是JavaApi?

    • JavaApi

    • 是一组预先定义好的类和接口,帮助开发者快速开发程序

    • JavaApi 就是学会如何使用别人编写的类和接口

    • Api

      • 应用程序的接口

      • 函数与类的集合

    • 实际就是别人写好的类

  • Java 中常用的包

    • Java.lang : 基础语言包

    • java.util : 集合框架,帮助类

    • java.io : 文件操作的包

    • javafx : 用于创建富客服端应用程序的图形用户界面

    • java.net : 对网络聊天和爬虫使用

    • 包的导入:

      • import java.util.Random;---比如Scanner和Random的导入,写完这两个单词之后直接按住快捷键alt+/即可

      • lang包下的类无需导入

Object对象类

  • Object : 对象类

    • 所有类的父类

    • 其他的类都直接或者间接的继承了Object类

    • 一个类没有明确继承谁的时候默认继承Object

  • Object 两大方法

    • toString() 方法

      • 打印一个对象的时候固定调用toString() 方法

      • 作用:将对象作为字符串输出

      • 语法:public String toString(){ return "","";}

      • 如果编写类的时候,不想按照Object父类的格式输出,需要找到父类的toString() 方法,复制父类的方法,在自己编写的类中修改父类方法中的内容,切记:方法结构必须与父类相同

        • 假如需要打印一个stu对象

          • 测试类先调用system.out.println(stu.equals());

          • 这里面的equals()是从Object父类中继承下来的

          • 按住ctrl键,点击equals()方法跳转到父类object,复制父类toString()方法到stu类中,保持父类结构不变,改变内容

    • equals() 方法---使用方法和toString()方法一致

      • 对象比较时调用

      • 自定义比较规则

      • 当希望对象的某个属性相同的时候使用

      • 默认的equal()也是比较地址的

      • 一般情况下的语法:

      public boolean equal(Object obj){  //这里可以传入任何类型,因为Object是所有类的父类
          Student ss = (Student) obj;   //强转将Object转为Student
          return age = ss.age;
      }
      • 强转不能扭曲类,有继承关系的类才可以强转,实在想强转且只输出false,保持就算代码出错也不会报错,且不影响后续代码的输出,可以使用try-catch方法

      • try{ //可能报错的代码 }catch(Exception e){ return false ;}

        最后面的大括号里面放的是报错后如何处理的方法,也可以放syso语句,也可以不放

  • try-catch方法实例

public class Employee {
    private int id;
    private String name;
    
    @Override
    public boolean equals(Object obj) {
        try {
            Employee e = (Employee) obj;
            return age = e.age & name.equals(e.name); / 比较姓名和年龄
        } catch (ClassCastException e) {
            System.out.println("出现错误: " + e.getMessage());
            return false;
        }
    }
}
  • equal()方法实例

public class Person {
    private String name;
    private int age;
    //重写equals方法
    @Override
    public boolean equals(Object obj) {
        Person person = (Person) obj;
        return age = person.age & name.equals(person.name); // 比较姓名和年龄
    }
}
public static void main(String[] args) {
    Person person1 = new Person("Alice", 30);
    Person person2 = new Person("Alice", 30);
    Person person3 = new Person("Bob", 25);
    String str = "Alice";
    
    //比较对象
    System.out.println("person1 equals person2: " +person1.equals(person2));
    //输出: true
    System.out.println("person1 equals person3: " +person1.equals(person3));
    //输出: false
    System.out.println("person1 equals str: " + person1.equals(str)); // 输出:类型转换错误: ...
}

数据类型

  • 基本数据类型

    • 八大基本数据类型

      • byte

      • short

      • int

      • long

      • float

      • double

      • boolean

      • char

    • 基本数据类型中的值都是独立的

    • 使用==

  • 引用数据类型

    • Class c1 = new Class();

      Class c2 = c1;

      Class c3 = c1;

    • 上面的c1,c2,c3指的是同一个对象,只不过有多个名字

    • 基本使用equal();也可以使用==,但是在引用数据类型中

      ==比较的是对象地址,看是不是对应的同一个对象,每个对象都有自己的地址,且不重复

    • 用上面的举例:c1==c2,返回的是true,因为是同一个对象,地址相同

继承

  • extends 继承

    • A extends B

    • A会获取B的属性和方法,但是extends使用时仅限公开的public 不能私有化

    • public class Child extends Student{}

标签:Object,equals,第一节,---,Person,JavaApi,父类,方法,public
From: https://blog.csdn.net/XWM_Web/article/details/143933290

相关文章

  • Open-RAG:将开源LLM模型集成为高效RAG模型 | ENMLP'24
    本文是对公开论文的核心提炼,旨在进行学术交流。如有任何侵权问题,请及时联系号主以便删除。来源:晓飞的算法工程笔记公众号,转载请注明出处论文:Open-RAG:EnhancedRetrieval-AugmentedReasoningwithOpen-SourceLargeLanguageModels论文地址:https://arxiv.org/abs/24......
  • Linux基础——ISO修复kernel-4.19.0-grub问题:/boot文件损坏
    1、挂载bc8镜像#Trobleshooting进入2、进入修复模式3、进入救援模式4、切换用户根目录/mnt/sysimagechroot/mnt/sysroot/5、挂载ios镜像数据包mkdir-p/mnt/tempmount/dev/sr0/mnt/temp可以尝试以下两种挂载镜像方式iso9660文件系统mount-oiso9660/d......
  • QT6.8 编译 MSVC2022-64位MySQL驱动
    QT6.8没有编译MySql驱动,也没有.pro的项目文件,只能自己想办法编译,网上找了很多方法,终于找到了可以成功编译的方法,下面将我的编译过程详细记录如下:[声明:本文为原创,未经允许,不得转载]当前安装情况如下,安装了2个版本的QT:QT6.8msvc2022_64环境 D:\ProgramFiles\Qt\6.8.0\msvc202......
  • 反射内存卡 TH-PXIE-211 单模 PXIE接口 256M 传输距离 10km
    特点1.高速数据传输:‌反射内存卡能够实现极高的数据传输速度,‌这是其最显著的特点之一。‌数据传输速度可达到微秒级或百纳秒级,‌大大提升了数据处理的实时性。‌这种高速传输能力使得反射内存卡非常适用于需要实时数据共享和处理的场合。‌2.低延迟:‌反射内存卡通过纯硬件方......
  • 【题解】洛谷P3531: [POI2012] LIT-Letters
    P3531[POI2012]LIT-Letters写了个假做法有点伤心,本以为是两个都求逆序对然后答案相减,但是这样在部分数据上确实合法,但是实际上毫无章法没有逻辑。正解考虑贪心,我们一个数字肯定要找最前面,第二次出现就去最前面第二次出现的位置,因为如果第一个A放在了后面,那么就有可能产生更对......
  • 拍照远传模块,水表抄表,NB-IOT
    拍照远传模块,用于周期性拍摄照片并上传到服务器。典型应用:水表抄表、燃气抄表等。主要技术参数:供电电源:3.7V锂电池供电,工作电压3.3-4.2V;休眠电流:~4uA,休眠功耗~16uW;一次上报功耗:~2mAh(实测:400mAh锂电池,每隔10分钟拍照上传一次,可拍摄200次左右,每张照片数据约13kB);通讯方式:NB_I......
  • 云计算-华为HCIA-学习笔记
    笔者今年7月底考取了华为云计算方向的HCIE认证,回顾从IA到IE的学习和项目实战,想整合和分享自己的学习历程,欢迎志同道合的朋友们一起讨论!第三章:常见设备交换机二层交换机和三层交换机,所谓二层交换机,就是指交换机只能识别到数据链路层的报文,也就是说该类型的交换机只能识......
  • ehcarts 实战小计-1
    需求展示未来未来36个月(等分为3个时间范围)的经济效益趋势,3个等分时间区域在趋势图上方常显,不同时间区域之间通过灰色虚线间隔开;鼠标hover趋势图每个1/3区域,对应区域会有以下3个效果:时间范围卡片高亮;趋势图上方展示对应指标;趋势图展示阴影效果;鼠标hoveror点击趋势图无t......
  • 2024-2025 ICPC, NERC, Southern and Volga Russian Regional Contest B. Make It Equ
    因为和题解有所区别,所以写一发题解增长见识。题面B.MakeItEqual给你一个大小为\(n\)的整数数组\(a\)。数组元素的编号从\(1\)到\(n\)。您可以执行以下任意次数的操作(可能为0次):从\(1\)到\(n\)中选择一个索引\(i\);将\(a_i\)减少\(2\),并将\(a_{(i\bmo......
  • 1-30
    //1-30仅自己可见//2-10//头文件#include<iostream>//把这个头文件的内容全部拷贝在出现的位置上来。。。。//<>""的区别//<>是从编译器指定的路径寻找这个文件//""在当前的目录下找这个文件//如果找不到再从是从编译器指定的路径寻找这个文件//2-11//main函数......