首页 > 编程语言 >[Java] 1.类和对象

[Java] 1.类和对象

时间:2023-03-01 11:23:20浏览次数:44  
标签:Java 构造方法 对象 System println student department public

类和对象


Class:类是对一类具有相同属性的事物的抽象。可以理解为类只是一张设计图。

Object:对象是对类的实例化,就是按照类图纸,制造出来可操作的实体。

类的定义

class 类 {
    成员变量 --> 代表类具备的属性
    成员方法 --> 类可以进行的行为
}

举一个示例来看,比如学生。学生在
属性方面有(姓名、年龄)
行为方面有(学习、睡觉)

文件: Student.java
内容:
public class Student {
    String name;
    int age;
    
    public void sleep() {
        System.out.println("在睡觉");
    }
    
    public void study() {
        System.out.println("学习");
    }
}

类名 首字母大写,驼峰命名,见文知意
一个Java文件中只能有一个类被public修饰,且public修饰的类必须是代码的文件名,如上Student.java和public class Student {}


构造方法

无返回类型与类同名的方法。如果不写构造方法,JVM会自动为类添加一个无参构造方法。

如果写了构造方法,则不会自动生成无参构造方法。

每次实例化时,虚拟机会自动调用构造方法,用来初始化对象。

注: 建议在构造类时,手动把空参和带全部参数的构造方法都写上。

class Person {
    int age;
    String gender;

    public Person() {
        System.out.println("空参构造");
    }

    public Person(int age, String gender) {
        this.age = age;
        this.gender = gender;
        System.out.println("有参构造方法");
    }
}

标准JavaBean类和快捷键

标准

  1. 类名要见名知意
  2. 成员变量要用 private 确保安全性
  3. 提供至少两个构造方法
    • 无参构造
    • 带全部参数的构造方法
  4. 成员方法
    • 提供每个成员变量对应的 get() 和 set() 方法
    • 其他相关方法

IDEA 快捷键

  • alt + Insert

img

Constructor 为生成构造器

Getter and Setter 为成员变量生成 get & set 方法

  • PTG 插件

img

Ptg To JavaBeam,会自动生成所有成员变量的 get & set 方法甚至注释都帮你写好了

img


对象内存图

课程链接 对象内存图


共享成员变量

使用 static 修饰符

学生类中,如果要使所有学生共享 专业 department 这个变量就进行如下操作。

class student {
    private String name;
    private String gender;
    public static String department; // 所属专业
}

public class StuTest {
    public static void main(String[] args) {
        student.department = "计算机";  // 用类名直接调用
        student stu1 = new student();
        stu1.department = "软件工程";  //用实例对象调用

        student stu2 = new student();
        student stu3 = new student();

        System.out.println(stu1.department);
        System.out.println(stu2.department);
        System.out.println(stu3.department);
        System.out.println(student.department);
    }
}

Output:

软件工程
软件工程
软件工程
软件工程

注: 建议使用类名调用,既然是共享,逻辑上不应该用某个实例来调用。

静态变量归属于类,随类加载,优先于实例对象。

类加载后会在堆存储中开辟静态存储区。后期实例化的 stu1, stu2 都会自动去静态存储区取得静态变量 department 的值。

img

感受:其实静态变量并不是说,这个变量不能修改,而是同类实例共享变量值。


标签:Java,构造方法,对象,System,println,student,department,public
From: https://www.cnblogs.com/libayu/p/17167496.html

相关文章

  • [Java] 2.封装
    封装封装就是要程序员学会正确设计类对象的属性和方法,举个例题:请对“人在加油站加200块汽油”进行面向对象设计。显然我们可以得到两个类人:classPerson{}加油......
  • Java导出word文档
    首先上测试代码,用的SpringMVC。/***测试导出word文档**@paramrequest*@return*@throwsCustomException*@authoryuanjin......
  • 33 个重要的 JavaScript 概念
    33个重要的JavaScript概念原创2022-12-2418:21·程序媛最幽默 了解这33个JavaScript概念绝对会让你将来的职业生涯受益无穷。话不多说,直接进入主题!1.调用栈......
  • 分享 29个超有用的 JavaScript 单行代码(下)
    分享29个超有用的JavaScript单行代码(下)原创2023-02-0321:19·前端达人大家好,在上一篇文章《分享29个超有用的JavaScript单行代码(上)》分享了日期、字符串、数字、数......
  • 分享29个超有用的 JavaScript 单行代码(上)
    分享29个超有用的JavaScript单行代码(上)原创2023-02-0320:13·前端达人在这篇文章中,我列出了一系列29个JavaScript单行代码,它们在使用原生JS(≥ES6)进行开发时非常......
  • 腾讯云对象存储 COS搭建个人网站
    腾讯云对象存储COS搭建个人网站,简单易操作,方便快捷。 只需要将你的网站资源上传即可,然后设置上你的自定义CDN加速域名,一个个人网站就上线啦!当然,你也可以不用设置......
  • 7 个 高效的 JavaScript 库,总有一个适合你
    7个高效的JavaScript库,总有一个适合你原创2023-02-1409:45·前端达人转载说明:原创不易,未经授权,谢绝任何形式的转载当我们可以通过使用库轻松实现相同的结果时,为......
  • 给外联样式表和JavaScript脚本增加版本号的方法
    方法和问题方法一:前端使用JQuery的方法增加版本号方法二:前端使用JavaScript来增加版本号方法三:后端代码加载方法一:前端使用JQuery的方法增加版本号先上代码<scri......
  • java Random工具类
    常用的创建random的用法如下:for(inti=0;i<10;i++){System.out.println(newRandom().nextDouble());//0-1之间的随机double数System.out.println(Math.rand......
  • javaapi在线查查询有哪些网站
    java8oracle官网在线api:​​​https://docs.oracle.com/javase/8/docs/api/​​​matools网(感觉这个是映射了oracle官网):​​http://www.matools.com/api/java8​​w3c......