详解Java基础篇–面向对象1(构造方法,static、this关键字)

详解Java基础篇--面向对象1

构造方法

什么是构造方法

构造方法是一种特殊的方法,它用来初始化对象。当创建一个对象时,构造方法会被调用,用于初始化实例变量。

构造方法的特点

  • 构造方法名必须与类名相同
  • 没有返回值,包括void
  • 可以有多个构造方法,我们称之为构造方法的重载
  • 构造方法在使用new关键字创建对象时自动调用

构造方法的使用示例

public class Student {
    String name;
    int age;

    public Student() {
        name = "unknown";
        age = 0;
    }

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

// 使用构造方法创建对象
Student s1 = new Student(); // 创建一个name为"unknown",age为0的Student对象
Student s2 = new Student("Tom", 18); // 创建一个name为"Tom",age为18的Student对象

static关键字

什么是static关键字

static关键字是用来修饰类、属性、方法和代码块等的,它会使得这些内容与对象无关,而与类相关联。也就是说,static修饰的元素会在类第一次被加载时创建,并且在整个程序执行期间只会被创建一次。

static关键字的使用示例

public class StaticDemo {
    public static int count = 0;

    public StaticDemo() {
        count++;
    }

    public static void main(String[] args) {
        for (int i = 0; i < 5; i++) {
            StaticDemo demo = new StaticDemo();
        }
        System.out.println("The count is " + StaticDemo.count); // 输出5,说明静态变量在整个程序中只创建了一次
    }
}

this关键字

什么是this关键字

this关键字是一个引用类型,它可以被用来引用当前对象。

this关键字的使用示例

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

    public ThisDemo(String name, int age) {
        this.name = name; // 使用this关键字可以引用当前对象的name属性,避免与方法输入参数name重名
        this.age = age; // 同上,可以引用当前对象的age属性
    }

    public void print() {
        System.out.println(this); // 输出当前对象的地址值
        System.out.println("name = " + this.name + ", age = " + this.age); // 使用this关键字可以引用当前对象的属性
    }

    public static void main(String[] args) {
        ThisDemo demo = new ThisDemo("Tom", 18);
        demo.print();
    }
}

总结

本篇文章详细介绍了Java的面向对象编程中的三个关键点:构造方法、static关键字和this关键字。通过示例的方式,讲解了它们的使用方法和特点。希望这篇文章能够帮助读者深入理解Java的面向对象编程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java基础篇–面向对象1(构造方法,static、this关键字) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 什么是Java内存模型?

    Java内存模型是一个规定了线程之间如何通过内存进行通讯的规范。JMM(Java Memory Model)规定了Java虚拟机如何控制线程与内存之间的数据传输。JMM主要通过定义内存栅栏和Happens-Before规则来实现线程通信。 JMM内存栅栏 内存栅栏是指一种同步屏障,用于强制共享数据的可见性和顺序性,确保各线程对内存所读到的数据是一致的。 Lo…

    Java 2023年5月11日
    00
  • Spring+SpringMVC+JDBC实现登录的示例(附源码)

    下面是关于“Spring+SpringMVC+JDBC实现登录的示例(附源码)”的完整攻略,包含两个示例说明。 Spring+SpringMVC+JDBC实现登录的示例 在本文中,我们将介绍如何使用Spring、SpringMVC和JDBC实现一个简单的登录功能。 步骤1:添加依赖 首先,我们需要在pom.xml文件中添加Spring、SpringMVC和J…

    Java 2023年5月17日
    00
  • Java 实现简易教务管理系统的代码

    Java 实现简易教务管理系统的代码攻略 简介 本文将介绍如何使用 Java 语言实现一个简易的教务管理系统,包括项目结构、涉及的技术、代码实现等方面的内容。 准备工作 在开始之前,我们需要做好以下准备工作: 安装 JDK(Java Development Kit) 安装 IDE(Integrated Development Environment,比如 E…

    Java 2023年5月19日
    00
  • 详解Nginx搭建图片服务器过程

    详解Nginx搭建图片服务器过程 Nginx是一款高性能的web服务器,通过配置可以使其支持静态资源的访问。在本篇攻略中,我们将详细讲解如何使用Nginx搭建一个图片服务器,方便用户上传和访问图片资源。 安装与配置Nginx 步骤1:安装Nginx 使用以下命令在Ubuntu中安装Nginx: sudo apt-get update sudo apt-get…

    Java 2023年5月19日
    00
  • 两种java实现二分查找的方式

    下面是详细讲解“两种java实现二分查找的方式”的攻略。 一、二分查找基本算法 二分查找算法的基本思想是:在一个有序数组中,查找一个元素,先找到数组的中间元素,然后将要查找的元素和中间元素进行比较,如果相等则直接返回中间元素,如果大于则在中间元素的右半部分继续查找,如果小于则在中间元素的左半部分继续查找,如此循环直到找到要查找的元素或者找不到为止。 Java…

    Java 2023年5月19日
    00
  • 详解Java Ajax jsonp 跨域请求

    详解Java Ajax jsonp 跨域请求 什么是跨域请求 在浏览器请求数据时,如果请求的数据地址与原始页面的协议、域名或端口不同,就会发生跨域请求。由于浏览器有同源限制的限制,不同域名之间的请求会受到阻止。 解决方案 为了解决跨域请求的限制,可以使用 jsonp 方式进行异步请求。jsonp通过script标签来获取数据,script标签不受同源限制,因…

    Java 2023年5月26日
    00
  • spring kafka框架中@KafkaListener 注解解读和使用案例

    下面就让我来详细讲解一下Spring Kafka框架中@KafkaListener注解的使用。 1. @KafkaListener注解介绍 @KafkaListener注解是Spring Kafka框架中用于消费Kafka消息的注解,用于标注一个或多个方法,使它们成为Kafka消息监听器。@KafkaListener注解可以用于类和方法上,用于类上时,需要配…

    Java 2023年5月20日
    00
  • java开发MyBatis中常用plus实体类注解符详解

    Java开发MyBatis中常用Plus实体类注解符详解 什么是MyBatis Plus? MyBatis Plus是MyBatis的一个增强工具,在MyBatis基础之上进行扩展。MyBatis Plus提供了很多实用的增强功能,如分页查询、条件构造器、逻辑删除、自动填充等,使得开发人员可以更加快捷地编写代码。在MyBatis Plus中,实体类注解符是其…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部