首页 > 编程语言 >Java从入门到精通-类和对象(二)

Java从入门到精通-类和对象(二)

时间:2023-09-12 13:01:48浏览次数:34  
标签:精通 静态方法 入门 构造方法 对象 静态 Student Java public

0. 类和对象

Java从入门到精通-类和对象(二)_构造方法

3. 类的构造方法

Java从入门到精通-类和对象(二)_静态变量_02

在Java中,构造方法是一种特殊的方法,用于创建和初始化对象。构造方法的名称必须与类名相同,它没有返回值,并且在创建对象时自动调用。构造方法的主要作用是确保对象在创建时具有合适的初始状态。

以下是构造方法的基本概念和使用方式:

3.1 构造方法的特点:

  1. 构造方法的名称必须与类名相同。
  2. 构造方法没有返回值,甚至不需要使用void关键字。
  3. 构造方法在对象创建时自动调用,不能手动调用。
  4. 类可以有多个构造方法,根据不同的参数列表进行重载。
  5. 如果没有为类定义任何构造方法,Java会自动生成一个默认无参构造方法。

3.2 构造方法的作用:

构造方法的主要作用是进行对象的初始化,通常用于执行以下操作:

  • 初始化对象的属性。
  • 分配内存空间。
  • 执行必要的设置和准备工作。

3.3 构造方法示例:

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

    // 无参构造方法
    public Student() {
        // 默认构造方法,不执行特定初始化操作
    }

    // 带参数的构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 其他构造方法...
}

定义了一个Student类,它有两个构造方法:一个无参构造方法和一个带有参数的构造方法。带参数的构造方法用于初始化学生的姓名和年龄属性。

3.4 构造方法的使用:

public class Main {
    public static void main(String[] args) {
        // 使用无参构造方法创建对象
        Student student1 = new Student();
        
        // 使用带参数的构造方法创建对象
        Student student2 = new Student("Alice", 20);
    }
}

我们使用构造方法创建了两个Student对象,一个使用无参构造方法,另一个使用带参数的构造方法来初始化属性。

4. 静态变量和静态方法

Java从入门到精通-类和对象(二)_java_03

在Java中,静态变量和静态方法是与类关联而不是与对象关联的。它们属于类而不是对象,因此可以通过类名直接访问,而无需创建类的实例。让我们深入了解静态变量和静态方法的概念和用法。

4.1 静态变量(静态字段)

静态变量,也称为静态字段或类变量,是在类级别上声明的变量,它们的值对于所有类的实例都是共享的。静态变量通常用static关键字修饰。以下是静态变量的特点和用法:

  • 静态变量属于类,而不属于类的任何实例。
  • 所有类的实例共享相同的静态变量。
  • 静态变量在类被加载时初始化,只会初始化一次。
  • 静态变量可以通过类名直接访问,无需创建对象。

示例:

public class Counter {
    // 静态变量
    public static int count = 0;
    
    // 静态方法
    public static void increment() {
        count++;
    }
}

示例中,Counter类具有一个静态变量count,用于跟踪计数,并且有一个静态方法increment(),用于增加计数。

4.2 静态方法

静态方法是在类级别上声明的方法,它们不需要依赖于类的实例而可以直接调用。静态方法通常用static关键字修饰。以下是静态方法的特点和用法:

  • 静态方法属于类,而不属于类的任何实例。
  • 静态方法可以直接通过类名调用,无需创建对象。
  • 静态方法不能访问非静态变量和非静态方法,因为它们不依赖于对象的状态。

示例:

public class MathUtils {
    // 静态方法:计算两个整数的和
    public static int add(int a, int b) {
        return a + b;
    }
}

示例中,MathUtils类具有一个静态方法add(),用于计算两个整数的和。这个方法可以通过类名直接调用,如MathUtils.add(5, 3)

4.3 静态变量和静态方法的用途

静态变量和静态方法通常用于以下情况:

  1. 共享数据:静态变量可用于存储类级别的共享数据,例如计数器、配置信息等。
  2. 工具方法:静态方法通常用于实现与类相关的工具方法,无需创建对象即可使用。
  3. 工厂方法:静态方法可用于创建类的实例,例如单例模式中的静态工厂方法。
  4. 常量:静态变量可以用于定义常量,例如Math.PI表示圆周率。
  5. 静态类:有时候,可以创建静态类,其中所有方法和变量都是静态的,用于实现工具类或全局配置类。

5. 类的主方法

Java从入门到精通-类和对象(二)_静态方法_04

在Java中,类的主方法是一个特殊的方法,它是Java程序的入口点(entry point)。每个Java应用程序必须包含一个主方法,它具有以下特点:

  1. 主方法的声明必须如下所示:
public static void main(String[] args)
  1. 主方法的名称必须是main
  2. 主方法的参数列表必须包括一个String数组参数,通常命名为args,用于接收命令行参数。
  3. 主方法的返回类型是void,表示它不返回任何值。

主方法的主要作用是作为程序的入口点,当程序启动时,Java虚拟机(JVM)会调用主方法来执行程序的逻辑。在主方法内部,您可以编写程序的主要逻辑,处理输入、执行计算、调用其他方法等。

以下是一个典型的Java程序包含的主方法:

public class MyProgram {
    public static void main(String[] args) {
        // 主方法的逻辑代码
        System.out.println("Hello, World!");
    }
}

示例中,MyProgram类包含了一个名为main的主方法,它简单地打印出"Hello, World!"。

主方法是Java程序的入口点,它允许您执行程序并与用户或其他系统进行交互。在实际应用中,主方法通常会包含更复杂的逻辑,从而实现特定的功能或任务。当您运行Java程序时,JVM会查找并执行主方法内的代码。

6. 对象

Java从入门到精通-类和对象(二)_java_05

在Java中,对象是面向对象编程的核心概念之一。对象表示现实世界中的实体或概念,并具有属性(成员变量)和方法(成员方法)来描述其特征和行为。让我们深入了解对象的概念和用法。

6.1 对象的基本概念

  • 对象是类的实例:类是对象的模板,而对象是根据模板创建的实际实例。对象是类的具体实体。
  • 对象具有状态和行为:对象的状态由成员变量(属性)表示,对象的行为由成员方法表示。状态描述了对象的特征,行为描述了对象可以执行的操作。
  • 对象是引用类型:在Java中,变量可以保存对象的引用而不是对象本身。引用是指向对象内存地址的指针。

在Java中,对象的创建通常遵循以下步骤:

  1. 定义类:首先,您需要定义一个类,该类描述了对象的属性和方法。
  2. 实例化对象:使用new关键字创建类的实例(对象),并分配内存空间。例如:
ClassName objectName = new ClassName();
  1. 访问对象:通过对象引用,可以访问对象的属性和方法。例如:
objectName.propertyName = value; // 设置属性值
objectName.methodName();        // 调用方法

6.3 创建和使用对象

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

    // 构造方法
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 成员方法
    public void displayInfo() {
        System.out.println("姓名: " + name);
        System.out.println("年龄: " + age);
    }
}

public class Main {
    public static void main(String[] args) {
        // 创建Student对象
        Student student1 = new Student("Alice", 20);
        Student student2 = new Student("Bob", 22);

        // 访问对象的成员方法
        student1.displayInfo();
        student2.displayInfo();
    }
}

在示例中,定义了一个Student类,该类有两个成员变量nameage,以及一个成员方法displayInfo()用于显示学生信息。然后,在Main类的main方法中,我们创建了两个Student对象,并使用对象的引用调用了displayInfo()方法来显示学生信息。

6.4 对象的引用和生命周期

对象的引用是指向对象内存的指针。对象的引用可以被分配给变量,传递给方法,存储在数据结构中等等。对象的生命周期从创建(实例化)开始,到不再被引用时结束。一旦对象不再被引用,它将变为不可达,最终由垃圾收集器回收内存。

标签:精通,静态方法,入门,构造方法,对象,静态,Student,Java,public
From: https://blog.51cto.com/u_15747017/7444485

相关文章

  • Android入门教程 | TextView简介(宽高、文字、间距)
    TextView简介文字,是我们传达信息的一种常见方式。在安卓应用上显示文字,我们通常使用TextView。之前我们已经知道如何获取到layout中的TextView,也知道setText()方法可以修改显示的文字。结合我们实际的生活和学习经验,写字的时候,有哪些方面是可以由我们来控制的?文本内容;文字颜色;大......
  • JAVA Http Basic auth获取token
    本文主要参考:https://www.cnblogs.com/xiaocandou/p/7991927.html应用在获取token时,可以向api管理平台发起一个HTTPPOST请求,内容如下:•请求地址:https://****.com/token•请求内容:grant_type=client_credentials•请求Content-type:application/x-www-form-url......
  • JavaScript中apply, call和bind的区别
    首先要知道,JavaScript中apply,call和bind的作用基本都是一样的,就是用来改变函数执行时的上下文,或者说改变函数的this对象指向在详细了解它们的区别之前,我们先来看一个例子varname="lucky";constobj={name:"martin",say:function()......
  • 无涯教程-JavaScript - PDURATION函数
    描述PDURATION函数返回投资达到指定值所需的周期数。PDURATION使用以下公式-$$PDURATION=\frac{log\left(指定值\right)-log\left(currentValue\right)}{log\left(1+rate\right)}$$WherespecifiedValue等于fvcurrentValue等于pv语法PDURATION(rate,pv,fv)......
  • Redis从入门到放弃(2):数据类型
    Redis从入门到放弃(2):数据类型 在Redis中,数据以键值对的形式存储。Redis支持五种主要的数据类型,每种类型都有不同的用途和特性。本文将介绍Redis的五种数据类型:字符串(string),哈希(hash),列表(list),集合(set)和有序集合(sortedset)。1.字符串(String)介绍字符串是Redis中最基本的数据......
  • Redis从入门到放弃(1):安装配置
    Redis从入门到放弃(1):安装配置 1.介绍Redis是一个高性能的开源key-value数据库。它被广泛应用于缓存、会话存储、实时分析、消息队列等场景。Redis具有以下三个主要特点:数据持久化:Redis支持将内存中的数据保存到磁盘上,确保数据在断电或重启后不丢失。多样数据结构:除了支持......
  • 在 Java 应用程序中访问 USB 设备
    介绍USB、jUSB和JSR-80Java平台一直都以其平台无关性自豪。虽然这种无关性有许多好处,但是它也使得编写与硬件交互的Java应用程序的过程变得相当复杂。在本文中,研究科学家蒋清野讨论了两个项目,它们通过提供使Java应用程序可以使用USB设备的API而使这个过程变得更容易。......
  • javascript事件循环机制及面试题详解
    javascript事件循环机制及面试题详解 javascript是单线程执行的程序,也就是它只有一条主线,所有的程序都是逐行“排队”执行,在这种情况下可能存在一些问题,比如说setTimeout、ajax等待执行的时间较长,就会阻塞后续代码的执行,使得整个程序执行的耗时非常久,那么为了应对这样一个问......
  • Vue.js的index.html文件中引入JavaScript文件
    将js文件放在public文件夹下面在index.html文件下引入js文件在前面加<%=BASE_URL%>后面加路径,如果想将本地js文件打包之后也放在static/js文件夹下,需要在public文件夹下创建一个和打包之后文件放的位置一样的文件夹<scriptsrc="<%=BASE_URL%>./static/js/js文件名"></sc......
  • javascript:window.print() 打印
    1.JavaScript打印<inputid="btnPrint"type="button"value="button"οnclick="javascript:window.print();"style="color:#00f;font-weight:bold;text-decoration:none;cursor:pointer!important;cursor:hand"/>......