前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Java基础学习(3)

Java基础学习(3)

作者头像
爱学习的小超人
发布于 2022-11-14 08:15:34
发布于 2022-11-14 08:15:34
39900
代码可运行
举报
文章被收录于专栏:SuperXCRMySQLSuperXCRMySQL
运行总次数:0
代码可运行

创建对象

1.1 Java 包管理器

Java当中导入包语句 import 包含 + 类名 包名+类名组成了完整的包路径

import
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.time.LocalDate;//包路径


public class DateTest {

  public static void main(String[] args) {
    // 得到当前的完整时间
    LocalDate now = LocalDate.now();//now()指服务器的时间
    // 打印出时间
    System.out.println(now.toString());
  }
}
DateTimeFormatter 自定义时间日期格式

方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//前提把time转换成字符串
DateTimeFormatter df = DateTimeFormatter.ofpattern("yyyy年MM月dd日");
String timeStr = df.format(time);
System.out.println(timeStr);

年份 月份 日 星期 输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void main(String[] args) {

   LocalDate time = LocalDate.now();

   // 得到当前时间所在年
   int year = time.getYear();
   System.out.println("当前年份 " + year);         //年

   // 得到当前时间所在月
   int month = time.getMonth().getValue();
   System.out.println("当前月份 " + month);        //月

   // 得到当前时间在这个月中的天数
   int day = time.getDayOfMonth();
   System.out.println("当前日 " + day);            //天

   // 得到当前时间所在星期数
   int dayOfWeek = time.getDayOfWeek().getValue();
   System.out.println("当前星期 " + dayOfWeek);    //星期

 }

注:getMonth() 和 getDayWeek() 方法返回值不是具体的数字,而是一个对象(Java官方的设计),所以必须用getValue()得到具体数字

1.2 时间日期类的运用
字符串变成LocalDate类型 prase方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String date = "2019-01-01";
//把字符串转化为 LocalDate对象,并得到字符串匹配的日期
LocalDate date2 = LocalDate.parse(date);

System.out.println(date2.toString());

示例②

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String date = "2019/01/01";

DateTimeFormatter df = DateTimeFormatter.ofpatern("yyyy/MM/dd");
// 把字符串转化位 LocalDate 对象,并得到字符串匹配的日期
LocalDate date2 = LocalDate.prase(date,df);

System.out,println(date2.toString());
时间日期计算 plusDays(天数) 方法

plusDays 加天数

minusDays 减天数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    LocalDate leaveTime = getLeaveTime("2019-05-01", 4);
    System.out.println(leaveTime.toString());
  }

  /**
   * 根据入住时间和入住天数得到离店时间
   *
   * @param checkInTime
   * @param days
   * @return
   */
  public static LocalDate getLeaveTime(String checkInTime, int days) {
    // 把字符串转化为 LocalDate 类型
    LocalDate time = LocalDate.parse(checkInTime);
    // 使用 plusDays 添加天数,得到新的时间
    LocalDate leaveTime = time.plusDays(days);
    return leaveTime;
  }

}
两个日期时间的判断

注意判断方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.time.LocalDate;

public class DateTest11 {

  public static void main(String[] args) {

    LocalDate now = LocalDate.now();

    // 可以对两个 LocalDate 进行比较,
    // 可以判断一个日期是否在另一个日期之前或之后,
    // 或者判断两个日期是否是同年同月同日。

    boolean isBefore = now.minusDays(1).isBefore(LocalDate.now());

    System.out.println("是否在当天之前:" + isBefore);

    boolean isAfter = now.plusDays(1).isAfter(LocalDate.now());
    System.out.println("是否在当天之后:" + isAfter);


    // 判断是否是当天
    boolean sameDate = now.isEqual(LocalDate.now());
    System.out.println("是否在当天:" + sameDate);
  }

}
1.3 面向对象—抽象

对象的建立

创建Java类文件有四个规范需要遵守

  • 文件名由 类名 + .java组成,比如 HelloWorld.java
  • 类名遵循大驼峰命名法,首字母大写,另外类名里不能有中文和特殊符号(比如:&,#,@,*,等),只有字母和数字。比如: HelloWorld,Text,Text40
  • Java 类内容遵守固定格式
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class 类名称{

}
1.4 面向对象 — 包
创建包和包下面的类

com.superxcr.text 对应 str/main/java/com/superxcr/text

注意包名输入

SuperXCR域名:liqur.xyz

包名:com.superxcr

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
com.superxcr.testl.Hello.java
包名:com.youkeda.text
package com.superxcr.test;//包,一般只有一个,且在第一行

public class Hello {

}
如何引入自定义的类
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.superxcr.test;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
//引入 House 类对象
import com.superxcr.model.House;

public class Hello {

}
1.5 面向对象—属性/方法

特征称为 对象属性 行为称为 对象方法

完整抽象过程分别是抽象对象名称,对象属性,对象方法。

对象属性
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class House {
    // 房子的颜色是绿色
    public String color = "green";
    // 房子的卧室有2间
    public int bedRooms = 2;
}

public 代表公共变量的意思。除了public,还有protected,private

对象方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class House {
    // 房子的颜色是绿色
    public String color = "green";
    // 房子的卧室有2间
    public int bedRooms = 2;

    /**
     * 打开水龙头
     */
    public void runWater(){

    }

    /**
     * 打开电灯
     */
    public void turnLightsOn(){

    }
}

没有static的方法就叫做对象方法,有static的方法就称为静态方法。

例如

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 打开电灯
 */
public void turnLightsOn(){

}
1.6 实例化对象
实例化
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//我的房子
House myHouse = new House();

//你的房子
House youHouse = new House();

//她的房子
House herHouse = new House();

在实例化后才可以执行命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
youHouse.tirnLightOn();
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
herHouse.color = "red";
构造函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
new 构造函数();

①它的类名是和类名一样

比如House.java这个类的构造函数名称就是House,绝大多数情况下构造函数都是由Java系统自动创建

②构造函数这个方法是没有返回值的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class House{
    //这就是默认的构造函数
    public House(){
    }
}

③构造函数一般配合实例化一起使用的,可以把构造函数当作类对象的初始化方法

1.7 构造函数
带参数构造函数
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
House myHouse = new House();
myHouse.color = "red";
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
myHouse.color = "red";
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class House {
    // 房子的颜色是绿色
    public String color = "green";

    // 自定义一个带 color 参数的构造函数
    public House(String color){
      this.color = color;//等同于myHouse.color = "red";
    }
}
File

首先要 import java.io.File

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 实例化一个文件实例,指向到 d:/img/a.png 文件
File file = new File("d:/img/a.png");

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//根据parent路径名字符串和child路径名字符串创建一个新 File 实例
File(String parent, String child)

//通过给定的父文件对象和子路径名字符串创建一个新的File实例
File(File parent, String child)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 返回字节数
public long length()

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//得到文件大小的字节数
long size = file.length();

File 对象的其他方法:

​ | | |

​ v v v

详细请看最下方
1.8 ArrayList
ArrayList语法

ArrayList 本质上就是一个动态组对象,可以方便的存储集合对象,一般会把同类型的数据存储在ArrayList里,使用ArryayList就要实例化,使用new关键词,并且要指定对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 这里的 Java 对象类型可以是任意的对象类型
// 比如 String、Integer、House 等
// 这里的 <> 是 Java 泛型的规范,记住这个语法就行了
ArrayList<Java 对象类型> list = new ArrayList<>();

注意一下,ArrayList这个对象放在java.util包下,所以要用import

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.ArrayList;
Add方法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.ArrayList;

public class ArrayListTest1{

  public static void main(String[] args){
    // 创建一个 ArrayList 存储字符串集合
    ArrayList<String> strs = new ArrayList<>();

    // 添加数据到 ArrayList 实例里
    strs.add("张三");
    strs.add("李四");
  }
}

get/size方法

ArrayList 是动态数组,具备数组特点

  • 可以获取长度
  • 可以根据索引获取具体值get(索引),ArrayList的索引是从0开始的 一般用index来索引
for循环的两种写法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(int i=0;i<size;i++){
     // 根据索引获取值,值的类型是 String
     String str = strs.get(i);
     System.out.println(str);
  }

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 使用 for 循环迭代每一条记录
  for(String str : strs){
     System.out.println(str);
  }

分析

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ArrayList<String> strs = new ArrayList<>();
for(String str : strs){
  System.out.println(str);
}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for( 集合变量的类型 变量名称 : 集合变量 )

格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for(String str : strs){
    
}
Map

Map(映射)是遵循key:value这样的形式的集合。key,value的类型可以是任何Java对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.util.Map;
import java.util.HashMap;

// key value 得是 Java 类型
Map<key,value> map = new HashMap<>();
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 实例化Map对象
Map<Integer,String> map = new HashMap<>();

map.put(1,"Monday");
map.put(2,"Tuesday");
map.put(3,"Wednesday");
map.put(4,"Thursday");
map.put(5,"Friday");
map.put(6,"Saturday");
map.put(7,"Sunday");

map.get(key)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String weekText = map.get(3);
System.out.println(weekText);

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int size = map.size();
System.out.println(size);

Map遍历

因为是key :value格式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (Map.Entry<Integer,String> entry : map.entrySet()){

  System.out.println("Key = " + entry.getKey() +
                 ", Value = " + entry.getValue());
}

调用reply方法传入send()方法接受信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public String send(String message) {
        String reply = robot.reply(message);
        return reply;
    }
File 对象的其他方法:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
File 对象的其他方法
1 public String getName()
返回由此抽象路径名表示的文件或目录的名称。

2 public String getParent()、
返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null3 public File getParentFile()
返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null4 public String getPath()
将此抽象路径名转换为一个路径名字符串。

5 public boolean isAbsolute()
测试此抽象路径名是否为绝对路径名。

6 public String getAbsolutePath()
返回抽象路径名的绝对路径名字符串。

7 public boolean canRead()
测试应用程序是否可以读取此抽象路径名表示的文件。

8 public boolean canWrite()
测试应用程序是否可以修改此抽象路径名表示的文件。

9 public boolean exists()
测试此抽象路径名表示的文件或目录是否存在。

10 public boolean isDirectory()
测试此抽象路径名表示的文件是否是一个目录。

11 public boolean isFile()
测试此抽象路径名表示的文件是否是一个标准文件。

12 public long lastModified()
返回此抽象路径名表示的文件最后一次被修改的时间。

13 public long length()
返回由此抽象路径名表示的文件的长度。

14 public boolean createNewFile() throws IOException
当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。

15 public boolean delete()
删除此抽象路径名表示的文件或目录。

16 public void deleteOnExit()
在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。

17 public String[] list()
返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。

18 public String[] list(FilenameFilter filter)
返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。

19 public File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。

20 public File[] listFiles(FileFilter filter)
返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。

21 public boolean mkdir()
创建此抽象路径名指定的目录。

22 public boolean mkdirs()
创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。

23 public boolean renameTo(File dest)
重新命名此抽象路径名表示的文件。

24 public boolean setLastModified(long time)
设置由此抽象路径名所指定的文件或目录的最后一次修改时间。

25 public boolean setReadOnly()
标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。

26 public static File createTempFile(String prefix, String suffix, File directory) throws IOException
在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。

27 public static File createTempFile(String prefix, String suffix) throws IOException
在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。

28 public int compareTo(File pathname)
按字母顺序比较两个抽象路径名。

29 public int compareTo(Object o)
按字母顺序比较抽象路径名与给定对象。

30 public boolean equals(Object obj)
测试此抽象路径名与给定对象是否相等。

31 public String toString()
返回此抽象路径名的路径名字符串。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JAVA获取30天或某段范围日期的方法
这个示例使用了Java 8中的LocalDate类和DateTimeFormatter类来处理日期格式化。首先,我们创建一个formatter对象来定义日期格式(例如:“yyyy-MM-dd”)。然后,我们获取当前日期并创建一个空的列表来存储日期字符串。
用户9184480
2024/12/13
1310
JAVA获取30天或某段范围日期的方法
Java成神路 —— 文件操作
1.1 File 类概述和构造方法 1. File 类介绍 它是文件和目录路径名的抽象表示 文件和目录是可以通过 File 封装成对象的 对于 File 而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的 2. File 类的构造方法 方法名 说明 File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的 File 实例 File(String parent, Strin
繁依Fanyi
2023/05/07
1490
Java8
挑战A.I.,赢百万奖金......了解更多详情>>> package com.shi.lambda; import java.util.Arrays; import java.util.Lis
用户5927264
2019/07/31
1.1K0
Java8
Java基础系列8——IO流超详细总结
该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架。
说故事的五公子
2020/01/02
1.4K0
第53节:Java当中的IO流(上)
标题图 Java当中的IO流 在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以用来解决字
达达前端
2019/07/03
5550
第53节:Java当中的IO流(上)
Java IO学习笔记一
文章目录 1. Java IO学习笔记一 1.1. File 1.1.1. 构造函数 1.1.1.1. 实例 1.1.2. 常用方法 1.1.2.1. 字段 1.1.2.2. 方法摘要 1.2. 实例 1.2.1. 创建文件 1.2.2. 创建文件夹 1.2.3. 列出全部文件 1.2.3.1. list 1.2.3.2. listFiles 1.3. 参考文章 Java IO学习笔记一 File File是文件和目录路径名的抽象表示形式,总的来说就是java创建删除文件目录的一个类库,但是作用不仅仅
爱撒谎的男孩
2019/12/31
2890
java基础知识02
1、String字符串: 字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。用length()方法获取长度。
贪挽懒月
2018/12/05
5570
java基础知识02
Java学习笔记, 不断更新
(1)split表达式,就是一个正则表达式。* ^ | 等符号在正则表达式中属于一种有特殊含义的字符,如果使用此种字符作为分隔符,必须使用转义符即 \ 加以转义。 (2)如果使用多个分隔符则需要借助 | 符号,如 “\^|@|#”,但需要转义符的仍然要加上分隔符进行处理。
小锋学长生活大爆炸
2020/08/13
1.1K0
Java基础语法详解
Java是一种广泛使用的面向对象编程语言,适用于开发跨平台的应用程序。本文将详细介绍Java的基础语法,帮助初学者打好扎实的编程基础。
九转成圣
2024/05/30
1710
【Java 基础篇】Java 日期类详解
日期和时间在软件开发中是非常常见且重要的概念。Java 提供了一套强大的日期和时间 API,用于处理日期、时间、时区等相关操作。本文将详细介绍 Java 日期类的概念、用法和常见操作,并提供一些示例代码。
繁依Fanyi
2023/10/12
3070
Java8中时间API
java.time.Instant表示时间线上的一点,而不需要任何上下文信息,例如,时区。概念上讲,它只是简单的表示自1970年1月1日0时0分0秒(UTC)开始的秒数。
鱼找水需要时间
2023/04/28
8970
21天学习挑战赛之java的IO流
​ 把“E:\itcast\窗里窗外.txt”复制到模块目录下的“窗里窗外.txt” (文件可以是任意文件)
楠羽
2022/11/18
3440
Java基础(十七):日期时间API
第三次引入的API是成功的,并且Java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务
冬天vs不冷
2025/01/21
1090
Java基础(十七):日期时间API
【最爽的日期工具包LocalDate·超爽,超实用】(Java8版本)
需要的包: import java.time.DayOfWeek; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAccessor; import j
红目香薰
2022/11/28
6710
Java基础总结大全(4)
最新通知 ●回复"每日一练"获取以前的题目! ●【新】Android视频更新了!(回复【安卓视频】获取下载链接) ●【新】Ajax知识点视频更新了!(回复【学习视频】获取下载链接) ●【新】HTML5知识点视频更新了!(回复【前端资料】获取下载链接) ●答案公布时间:为每期发布题目的第二天 ★【新】回复“测试题”获取昨天发布的软件工程师初级阶段测试题答案 ★【新】回复“学习资料”获取java学习电子文档 ★【新】需要求职简历模板的可以加小编微信xxf960513 聊天系统 ●我希望大家积极参与答题!有什么不
Java学习
2018/04/16
9660
Java1.8新时间api - LocalDateTime
新时间对象: 1.LocalDate表示年月日 2.LocalTime表示时分秒 3.LocalDateTime表示年月日时分秒 4.Instant:表示时刻,不直接对应年月日信息,需要通过时区转换 5.ZonedDateTime: 表示特定时区的日期和时间 6.ZoneId/ZoneOffset:表示时区 1、获取对象的方法 //通过静态方法now()获取当前时间 LocalDate now1 = LocalDate.now(); LocalTime now2 = LocalTim
Java深度编程
2020/12/22
3.2K0
Java常用类
补充: 与 StringBuffer、StringBuilder 之间的转换 String === 》 StringBuffer、StringBuilder:调用 StringBuffer、StringBuilder 构造器; StringBuffer、StringBuilder ===》 String: ① 调用 String 构造器 ② StringBuffer、StringBuilder 的 toString();
OY
2022/02/21
1.5K0
Java常用类
Java常用类(时间LocalDate,Comparable,Comparator等)
String类是Java语言中最常用的类之一,它表示字符串。以下是一些常用的String方法:
小明爱吃火锅
2023/10/01
3000
从File类开始,学习Java文件操作
今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。
喵手
2023/11/21
2630
从File类开始,学习Java文件操作
File类简介说明加使用
File 类是在整个java.io 包里面唯一一个与文件本身有关的操作类,与文件本身有关指的是这个类可以进行操作文件的路径的指派,可以创建或者删除文件,以及获取文件的相关的信息内容。 在使用File类时可以采用如下的构造方法进行定义实例化:
用户9006224
2022/12/21
2580
File类简介说明加使用
相关推荐
JAVA获取30天或某段范围日期的方法
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验