Java当中导入包语句 import 包含 + 类名 包名+类名组成了完整的包路径
import java.time.LocalDate;//包路径
public class DateTest {
public static void main(String[] args) {
// 得到当前的完整时间
LocalDate now = LocalDate.now();//now()指服务器的时间
// 打印出时间
System.out.println(now.toString());
}
}
方法
//前提把time转换成字符串
DateTimeFormatter df = DateTimeFormatter.ofpattern("yyyy年MM月dd日");
String timeStr = df.format(time);
System.out.println(timeStr);
年份 月份 日 星期 输出
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()得到具体数字
String date = "2019-01-01";
//把字符串转化为 LocalDate对象,并得到字符串匹配的日期
LocalDate date2 = LocalDate.parse(date);
System.out.println(date2.toString());
示例②
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 加天数
minusDays 减天数
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;
}
}
注意判断方法
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);
}
}
对象的建立
创建Java类文件有四个规范需要遵守
public class 类名称{
}
com.superxcr.text 对应 str/main/java/com/superxcr/text
注意包名输入
SuperXCR域名:liqur.xyz
包名:com.superxcr
com.superxcr.testl.Hello.java
包名:com.youkeda.text
package com.superxcr.test;//包,一般只有一个,且在第一行
public class Hello {
}
package com.superxcr.test;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
//引入 House 类对象
import com.superxcr.model.House;
public class Hello {
}
特征称为 对象属性 行为称为 对象方法
完整抽象过程分别是抽象对象名称,对象属性,对象方法。
public class House {
// 房子的颜色是绿色
public String color = "green";
// 房子的卧室有2间
public int bedRooms = 2;
}
public 代表公共变量的意思。除了public,还有protected,private
public class House {
// 房子的颜色是绿色
public String color = "green";
// 房子的卧室有2间
public int bedRooms = 2;
/**
* 打开水龙头
*/
public void runWater(){
}
/**
* 打开电灯
*/
public void turnLightsOn(){
}
}
没有static的方法就叫做对象方法,有static的方法就称为静态方法。
例如
/**
* 打开电灯
*/
public void turnLightsOn(){
}
//我的房子
House myHouse = new House();
//你的房子
House youHouse = new House();
//她的房子
House herHouse = new House();
在实例化后才可以执行命令
如
youHouse.tirnLightOn();
herHouse.color = "red";
new 构造函数();
①它的类名是和类名一样
比如House.java这个类的构造函数名称就是House,绝大多数情况下构造函数都是由Java系统自动创建
②构造函数这个方法是没有返回值的
public class House{
//这就是默认的构造函数
public House(){
}
}
③构造函数一般配合实例化一起使用的,可以把构造函数当作类对象的初始化方法
House myHouse = new House();
myHouse.color = "red";
myHouse.color = "red";
public class House {
// 房子的颜色是绿色
public String color = "green";
// 自定义一个带 color 参数的构造函数
public House(String color){
this.color = color;//等同于myHouse.color = "red";
}
}
首先要 import java.io.File
// 实例化一个文件实例,指向到 d:/img/a.png 文件
File file = new File("d:/img/a.png");
//根据parent路径名字符串和child路径名字符串创建一个新 File 实例
File(String parent, String child)
//通过给定的父文件对象和子路径名字符串创建一个新的File实例
File(File parent, String child)
// 返回字节数
public long length()
//得到文件大小的字节数
long size = file.length();
| | |
v v v
ArrayList 本质上就是一个动态组对象,可以方便的存储集合对象,一般会把同类型的数据存储在ArrayList里,使用ArryayList就要实例化,使用new关键词,并且要指定对象
// 这里的 Java 对象类型可以是任意的对象类型
// 比如 String、Integer、House 等
// 这里的 <> 是 Java 泛型的规范,记住这个语法就行了
ArrayList<Java 对象类型> list = new ArrayList<>();
注意一下,ArrayList这个对象放在java.util包下,所以要用import
import java.util.ArrayList;
import java.util.ArrayList;
public class ArrayListTest1{
public static void main(String[] args){
// 创建一个 ArrayList 存储字符串集合
ArrayList<String> strs = new ArrayList<>();
// 添加数据到 ArrayList 实例里
strs.add("张三");
strs.add("李四");
}
}
ArrayList 是动态数组,具备数组特点
for(int i=0;i<size;i++){
// 根据索引获取值,值的类型是 String
String str = strs.get(i);
System.out.println(str);
}
// 使用 for 循环迭代每一条记录
for(String str : strs){
System.out.println(str);
}
分析
ArrayList<String> strs = new ArrayList<>();
for(String str : strs){
System.out.println(str);
}
for( 集合变量的类型 变量名称 : 集合变量 )
格式
for(String str : strs){
}
Map(映射)是遵循key:value这样的形式的集合。key,value的类型可以是任何Java对象
import java.util.Map;
import java.util.HashMap;
// key value 得是 Java 类型
Map<key,value> map = new HashMap<>();
// 实例化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)
String weekText = map.get(3);
System.out.println(weekText);
int size = map.size();
System.out.println(size);
Map遍历
因为是key :value格式
for (Map.Entry<Integer,String> entry : map.entrySet()){
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}
调用reply方法传入send()方法接受信息
public String send(String message) {
String reply = robot.reply(message);
return reply;
}
File 对象的其他方法
1 public String getName()
返回由此抽象路径名表示的文件或目录的名称。
2 public String getParent()、
返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。
3 public File getParentFile()
返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。
4 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()
返回此抽象路径名的路径名字符串。