java类的定义与使用举例详解

 更新时间:2023年11月23日 11:37:23   作者:蓝朽  
这篇文章主要给大家介绍了关于java类的定义与使用的相关资料,类的方法是用来定义类的行为,在方法中通过操作类的成员变量、编写业务逻辑、返回 结果等实现类的业务行为,需要的朋友可以参考下

一、概念

  • 我们不能将一个事物称之为一类事物,例如一只鸟我们不能称为鸟类,但是我们需要给一类事物统称,例如大雁,麻雀,燕子,统称为鸟类,在Java中我们对这种统称需要用到类的概念。
  • 类是同一类事物的统称,将现实世界的一个事物抽象成对象,类就是这类事物的统称,如鸟类,人类,家禽类。类是构造对象时所依赖的规范。一只鸟会有一对翅膀,他可以用这对翅膀进行飞行,基本上所有的鸟类都有“有翅膀”这个特性和用这对翅膀飞行的功能,这样的具有相同特性和行为的一类事物就称为类,类的思想就是这样的。
  • 类是封装对象的属性和行为的载体,在Java语言中,类对象的行为是以方法的形式定义的,对象的属性是以成员变量的形式定义的,所以类包括对象的属性和方法。

二、使用

1.成员变量

对象的属性也称为成员变量,成员变量可以是任意类型,成员变量的作用域是整个类

定义一个学生类:

public class Student {
    private String name;//name属性
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

上面定义了一个name属性并写了它的get和set方法。

2.成员方法

在刚才例子中的成员方法就是setName和getName,一个是设置名字一个是获取名字的方法。成员方法中可以设置任何类型的参数,也可以在成员方法中调用其他成员方法。

上面的this指的是自己,意思就是调用自己内部的属性或者方法。

3.权限修饰符

public,private,default,protected是java的四大修饰符,下面分别主要介绍四者之间的区别:

  • public是权限最大的修饰符,他可以修饰类,成员变量,成员方法,构造方法。被public修饰后,可以再任何一个类中,不管同不同包,任意使用。
  • private可以修饰成员变量,成员方法,构造方法,不能修饰类(此刻指的是外部类,内部类不加以考虑)。被private修饰的成员只能在其修饰的本类中访问,在其他类中不能调用,但是被private修饰的成员可以通过set和get方法向外界提供访问方式。
  • defalut即不写任何关键字,它可以修饰类,成员变量,成员方法,构造方法。被默认权限修饰后,其只能被本类以及同包下的其他类访问。
  • protected可以修饰成员变量,成员方法,构造方法,但不能修饰类(此处指的是外部类,内部类不加以考虑)。被protected修饰后,只能被同包下的其他类访问。如果不同包下的类要访问被protected修饰的成员,这个类必须是其子类。
    还有一个是final
    final 修饰类,类不能被继承,修饰变量只能赋值一次,修饰方法方法不能被重写
修饰符本类同一个包的类其他包的类
public可访问可访问可访问
private可访问不可访问不可访问
protected可访问可访问不可访问

4.静态方法

定义了静态方法就可以直接用对象.方法来直接调用,就不需要先创建对象再调用方法了,静态变量和静态方法通常是为了提供共享数据或方法,如下:

public class test {
    public static void main(String[] args) {
        System.out.println(Student.name);//使用 对象.属性 调用
        Student.method();//使用 对象.方法 调用
    }
}
class Student {
    static String name="王五";
    public static void method(){
        System.out.println("这是一个静态方法");
    }
}

以上代码定义了一个静态属性和静态方法,通过Student.属性或者Student.方法来调用,就不需要先new对象再调用了

三、重写toString方法

其实对于一般的对象来说都会有这个方法,这个方法的目的,主要就是将对象按字符串的方式输出出来,用白话说就是:使用文字描述这个对象里各个变量是什么值 ,这个变量是什么类型的变量等 ,并且任何类都从Object继承了这个方法,你不重写toString()方法的话输出的就是一个内存地址,也就是哈希码值。并不是输出这个类的各个变量的值,记得不重写好像只打印对象的类型而已。
返回的是 getClass().getName() + “@” +Integer.toHexString(hashCode());
也就是 类名 + @ +hashCode的值

比如下面的例子:

public class test {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("zhangsan");
        stu.setAge(18);
        System.out.println(stu);
    }
}
class Student {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
}

输出:

上面就是没有重写tostring方法打印出来的东西,是什么我们也看不懂,只知道它是个对象的地址,不利于我们观看

下面是重写了toString方法的:

public class test {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("zhangsan");
        stu.setAge(18);
        System.out.println(stu);
    }
}
class Student {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String toString() {//重写方法
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

输出结果:

这个结果就看起来很舒服,我们就能看到刚才自己传的有哪些值。

注:打印一个对象,可以直接System.out.println(stu)其实println方法内部会自动调用stu 的 toString() 方法。

总结

到此这篇关于java类的定义与使用的文章就介绍到这了,更多相关java类定义内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java使用WatchService监控文件内容变化的示例

    Java使用WatchService监控文件内容变化的示例

    本篇文章主要介绍了Java使用WatchService监控文件变化的示例,非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • Java Annotation注解相关原理代码总结

    Java Annotation注解相关原理代码总结

    这篇文章主要介绍了Java Annotation注解相关原理代码总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Javabean基于xstream包实现转XML文档的方法

    Javabean基于xstream包实现转XML文档的方法

    这篇文章主要介绍了Javabean基于xstream包实现转XML文档的方法,结合具体实例形式分析了xstream包用于转换xml文件的具体使用技巧,需要的朋友可以参考下
    2017-05-05
  • SpringBoot+mybatis+thymeleaf实现登录功能示例

    SpringBoot+mybatis+thymeleaf实现登录功能示例

    这篇文章主要介绍了SpringBoot+mybatis+thymeleaf实现登录功能示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 教你用Java GUI实现文本文件的读写

    教你用Java GUI实现文本文件的读写

    今天带大家来学习怎么用JavaSwing实现实现文本文件读写,文中有非常详细的代码示例,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • eclipse创建java项目并运行的详细教程讲解

    eclipse创建java项目并运行的详细教程讲解

    eclipse是java开发的ide工具,是大部分java开发人员的首选开发工具,可是对于一些新Java人员来说,不清楚eclipse怎么运行项目?这篇文章主要给大家介绍了关于eclipse创建java项目并运行的相关资料,需要的朋友可以参考下
    2023-04-04
  • 解决mybatis映射mapper.xml文件不编译的问题

    解决mybatis映射mapper.xml文件不编译的问题

    这篇文章主要介绍了解决mybatis映射mapper.xml文件不编译的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Mybatis-plus全局id生成策略详解

    Mybatis-plus全局id生成策略详解

    这篇文章主要介绍了Mybatis-plus全局id生成策略详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • 利用Postman和Chrome的开发者功能探究项目(毕业设计项目)

    利用Postman和Chrome的开发者功能探究项目(毕业设计项目)

    这篇文章主要介绍了利用Postman和Chrome的开发者功能探究项目(毕业设计项目),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 利用Java编写一个Java虚拟机

    利用Java编写一个Java虚拟机

    这篇文章主要为大家详细介绍了如何使用 Java17 编写的 Java 虚拟机,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的可以了解下
    2023-07-07

最新评论