广告
返回顶部
首页 > 资讯 > 后端开发 > Python >关于在Java中使用预定义类
  • 412
分享到

关于在Java中使用预定义类

Java预定义Java 2023-05-20 08:05:38 412人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录一、对象与对象变量二、Java类库中的LocalDate类三、更改器方法与访问器方法在Java中,没有类就无法做任何事情。然而,并不是所有的类都表现出面向对象的典型特征。以Mat

在Java中,没有类就无法做任何事情。然而,并不是所有的类都表现出面向对象的典型特征。以Math.Random为例,我们不必具体了解如何实现的,只需要方法名和参数。这正是封装的关键所在。Math类只封装了功能,所以不需要隐藏数据。由于没有数据,因此不必考虑创建对象和初始化它们的实例字段,因为根本没有实例字段。

一、对象与对象变量

要使用对象首先必须构造对象,并指定其初始化状态,然后对对象应用方法。

在Java中,要使用构造器(constructor,或称构造函数)构造新实例。构造器是一种特殊的方法,其作用是构造并初始化对象。

构造器总是与类名同名。因此,Date类的构造器就名为Date。要想构造一个Date对象,需要在构造器前面加上new操作符。如下例子:

new Date()

这个表达式会构造一个新对象。这个对象初始化为当前的日期和时间。

如果需要,可以将这个对象传递给一个方法

System.out.println(new Date());

或者对刚构造的对象应用一个方法。Date类中有一个toString方法。这个方法将生成日期的一个字符串描述,可以如下对Date对象应用toString方法:

String s = new Date().toString();

上面两个例子,构造对象仅使用了一次。通常,你可能希望保留所构造的对象从而能继续使用,为此,需要将对象存放值一个变量中:

Date rightNow = new Date();

对象和对象变量存在一个重要的区别,例如:

Date startTime;
s = startTime.toString(); //not yet

上例定义了一个对象变量startTime,它可以引用Date类型的变量。但是,startTime不是一个对象,而且实际上它甚至还没有引用任何对象,所以不能在这个变量上用任何Date方法,将会产生编译错误。

必须初始化startTime变量,让它引用一个新构造的对象:

startTime = new Date();

也可以设置这个变量,让它引用一个已有的对象:

startTime = rightNow;

重要的一点:对象变量并不实际包含一个对象,它只是引用一个对象

在Java中,任何对象变量的值都是一个引用,指向存储在另外一个地方的某个对象。

二、Java类库中的LocalDate类

标准Java类库分别包含了两个类:一个是用来表示时间点的Date类;另一个是用大家熟悉的日历表示法表示日期的LocalDate类。将时间度量与日历分开是一种很好的面向对象设计。

不要使用构造器来构造LocalDate对象。应用使用静态工厂方法(factory method),它会代表你调用的构造器,下面式表达式:

LocalDate.now()

上例会构造一个新对象,表示构造这个对象时的日期

可以提供年、月、日来构造对应一个特定日期的对象,并保存在一个对象变量中:

LocalDate newYearEve = LocalDate.of(2020,2,2)

也可以使用plusDays方法,把应用这个方法的对象称为当前对象,那么这个新日期对象则是距当前对象指定天数的一个新日期:

LocalDate aThousandDaysLater = newYearsEve.plusDays(1000);
int year = aThousandDays.getYear();
int month = aThousanDays.getMonthValue();
int day = aThousanDays.getDayOfMonth();

LocalDate类封装了一些实例字段来维护所设置的日期。

三、更改器方法与访问器方法

Java库较早版本曾经有另一个处理日历的类,名为GregorianCalender。如下这个类表示的是一个日期增加1000天:

GreGorianCalendar someDay = new GregorianCalendar(1999,11,31);
someDay.add(Calender.DAY_OF_MONTH,1000);

LocalDate.plusDays方法不同,GregorianCalendar.add方法是一个更改器方法(mutator method)。调用这个方法后,someDay对象的状态会改变。

相反,只访问对象而不修改对象的方法有时称为访问器方法(accessor method)。例如,LocalDate.getYear和GregorianCalender.get就是访问器方法。

使用LocalDate类显示当前月的日历:

import java.time.DayOfWeek;
import java.time.LocalDate;
public class Calendartest {
    public static void main(String[] args) {
        LocalDate date = LocalDate.now();
        int month = date.getMonthValue();
        int today = date.getDayOfMonth();
        date = date.minusDays(today - 1);
        DayOfWeek weekday = date.getDayOfWeek();
        int value = weekday.getValue();
        System.out.println("Mon Tue Wed Thu Fri Sat Sun");
        for(int i = 1; i < value; i++){
            System.out.print("    ");
        }
        while (date.getMonthValue() == month){
            System.out.printf("%3D",date.getDayOfMonth());
            if(date.getDayOfMonth() == today){
                System.out.print("*");
            }else {
                System.out.print(" ");
            }
            date = date.plusDays(1);
            if(date.getDayOfWeek().getValue() == 1){
                System.out.println();
            }
        }
        if(date.getDayOfWeek().getValue()!=1){
            System.out.println();
        }
    }
}

执行结果:

java.time.LocalDate API:

  • static LocalDate now()

构造一个表示当前日期的对象

  • static LocalDate of(int year, int month, int day)

构造一个表示给定日期的对象

  • int getYear()
  • int getMonthValue()
  • int getDayOfMonth()

得到当前日期的年、月和日

  • DayOfWeek getDayOfWeek()

得到当前日期是星期几,作为DayOfWeek类的一个实例返回。在DayOfWeek实例上调用getValue来得到1-7之间的一个数,表示这是返回的星期几,1表示星期一,7表示星期日

  • LocalDate plusDays(int n)
  • LocalDate minusDays(int n)

生成当前日期之后或之前n天的日期

到此这篇关于关于在Java中使用预定义类的文章就介绍到这了,更多相关Java预定义类内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于在Java中使用预定义类

本文链接: https://www.lsjlt.com/news/214222.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于在Java中使用预定义类
    目录一、对象与对象变量二、Java类库中的LocalDate类三、更改器方法与访问器方法在Java中,没有类就无法做任何事情。然而,并不是所有的类都表现出面向对象的典型特征。以Mat...
    99+
    2023-05-20
    Java 预定义 Java
  • 关于java的九个预定义Class对象
    目录基本的 Java 类型(boolean、byte、char、short、int、long、float 和 double)和关键字 void通过class属性也表示为 Class ...
    99+
    2023-05-20
    java 预定义 预定义Class对象
  • C#中的预定义类型与引用类型
    一、预定义的值类型 一个字节(1Byte)=8位(8Bit) BitArarry类可以管理位Bit。 1、整型 所有的整形变量都能用十进制或十六进制表示:long a=0x...
    99+
    2022-11-13
  • Android中关于自定义相机预览界面拉伸问题
    关于自定义相机预览界面拉伸问题 1、导致主要变形的原因是Camera预览界面旋转的角度和摄像头挂载的角度不同导致的 2、我们的Activity设置的方向是竖屏,这是手机的自然方...
    99+
    2022-06-06
    自定义 界面 相机 拉伸 Android
  • 关于如何正确地定义Java内部类方法详解
    目录一. 内部类简介1. 概念2. 优点3. 分类4. 内部类的特点5. Java类的创建要求二. 成员内部类1. 概念2. 特点3. 语法4. 案例4.1 定义成员内部类4.2 定...
    99+
    2023-05-19
    Java内部类定义 Java内部类 Java类
  • 怎么在Java中定义泛型类
    本篇文章为大家展示了怎么在Java中定义泛型类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论...
    99+
    2023-06-14
  • 关于Python中模块的简介、定义与使用
    目录前言:1.什么是模块2.模块的分类3.模块的使用4.自定义模块5.模块和执行文件的判断前言: 今天就开始讲Python中的模块篇了,模块是Python的重要组成部分,Python...
    99+
    2023-05-16
    Python模块定义 Python模块使用
  • 怎么在java中自定义异常类
    本篇文章给大家分享的是有关怎么在java中自定义异常类,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Java可以用来干什么Java主要应用于:1. web开发;2. Andro...
    99+
    2023-06-14
  • C#中的预定义类型与引用类型是什么
    今天小编给大家分享一下C#中的预定义类型与引用类型是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、预定义的值类型一个...
    99+
    2023-06-30
  • 怎么在python中使用namedtuple定义类
    这篇文章给大家介绍怎么在python中使用namedtuple定义类,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言...
    99+
    2023-06-14
  • 关于如何在Python中使用静态、类或
    Python中方法的工作方式方法是存储在类属性中的函数,你可以用下面这种方式声明和访问一个函数 >>> class Pizza(object): ... def __init__(self, size):...
    99+
    2023-01-31
    静态 如何在 Python
  • 详解PyTorch预定义数据集类datasets.ImageFolder使用方法
    目录数据集准备和目录结构加载数据集数据集划分数据加载器datasets.ImageFolder是PyTorch提供的一个预定义数据集类,用于处理图像数据。它可以方便地将一组图像加载到...
    99+
    2023-05-17
    PyTorch datasets.ImageFolder PyTorch 预定义数据集类
  • C#使用BitConverter与BitArray类进行预定义基础类型转换
    一、BitConverter 将预定义的基础类型与字节数据进行互转(Unicode) 1、将值类型转成字节数组(Unicode):BitConverter.GetBytes() by...
    99+
    2022-11-13
  • 关于JSCH使用自定义连接池的说明
    目录1. JSCH使用方法2. JSCH工具类3. 创建连接池4. 改造shellUtil5. 添加配置6. 线程安全问题解决1. JSCH使用方法 jsch使用方法 2. JSCH...
    99+
    2022-11-13
  • 如何在Java中定义Apache可用的数据类型?
    Java是一种流行的编程语言,可以使用它来创建各种应用程序,包括Web应用程序和桌面应用程序等。Apache是一个流行的开源软件基金会,它提供了许多有用的Java库,比如Apache Commons Lang和Apache Commons ...
    99+
    2023-08-16
    函数 数据类型 apache
  • 关于如何在Python中使用静态、类或抽
    方法是存储在类属性中的函数,你可以用下面这种方式声明和访问一个函数 >>> class Pizza(object): ... def __init__(self, size): ......
    99+
    2023-01-30
    静态 如何在 Python
  • 在c++于java项目中自定义Troop<T>泛型类达到方法
    这篇文章给大家介绍在c++于java项目中自定义Troop<T>泛型类达到方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Troop<T>是一个泛型列表操作类,适用于非高性能和非大数据量的要求...
    99+
    2023-05-31
    c++ java
  • 如何在Java中自定义一个枚举类
    本文章向大家介绍如何在Java中自定义一个枚举类的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序...
    99+
    2023-06-06
  • java泛型类如何定义和使用
    Java中定义泛型类的语法为:javapublic class 类名 {// 类的成员变量和方法}其中,泛型参数可以是任意合法的标识...
    99+
    2023-10-18
    java
  • 如何在python中使用__slots__定义类属性
    本篇文章给大家分享的是有关如何在python中使用__slots__定义类属性,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python是什么意思Python是一种跨平台的、具...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作