关于JAVA核心技术(卷一)读后的思考(对象与类,日历的构造)
Posted zzuzhouxiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于JAVA核心技术(卷一)读后的思考(对象与类,日历的构造)相关的知识,希望对你有一定的参考价值。
关于这本书,前三张都是基本内容,我觉得个人掌握的还可以,所以从第四章开始整理每日所学。
第四章主要说的是对象和类。第一部分是面向对象程序设计的概述。其中面向对象程序设计简写OOP,接下来写的是类,即构造对象的模板,由类构造对象的过程称创建类的实例(instance)这里可以想到instanceof,这也在后面学习中会有提到
封装是将数据和行为组合到一个包中,并对对象的使用者隐藏了数据的实现方式。数据成为实例域,操纵数据的过程称为方法。封装赋予了对象“黑盒“的特征,这是提高重用性和可靠性的关键。
接下来说一下类之间的关系,分为1、依赖,2、聚合,3、继承
依赖:就是一个类需要访问另一个类;聚合:A的对象包含着B的对象;继承:表示特殊和一般的关系。
new Date():应理解为Date()是一个构造器,在前面加一个new操作符即构造了一个新对象,这个对象被初始化为当前的日期和时间。1、可以将这个对象传递个一个方法,即可以将这个作为参数,进行传递。2、也可将一个方法应用于刚刚创建的对象方法应用于刚刚创建的对象。例如:String s=new Date().toString();若希望多次使用,可创建对象。Date birthday=New Date();
一、Date deadline=new Date(); ——用新构造的对象初始化这个变量。
二、deadline = birthday;——用这个变量引用一个已存在的对象。
LocalDate类LocalDate.now()构造一个新对象,表示构造这个对象时的日期。
可以提供年、月、日来构造对应一个特定日期的对象:
LocalDate.of(1999,12,31)
可以将其保存造一个变量对象中:LocalDate newYearsEve = LocalDate.of(1999,12,31);
问题:构造一个日历,并将当前用*标记
代码:
package com.java.CalendarTest;
import java.time.*;//使用LocalDate时,必须引入这个包
public class CalendarTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
LocalDate date = LocalDate.now();//创建当前时间的对象
int month = date.getMonthValue();//当前月份
int today = date.getDayOfMonth();//本月多少日
date = date.minusDays(today-1);//生成当前日期之后之前的n-1天
DayOfWeek weekday = date.getDayOfWeek();
int value = weekday.getValue();
System.out.println();
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();
}
}
static LocalTime now()
构造一个表示当前日期的对象
static LocalTime of (int year,int month,int day)
构造一个表示给定日期的对象
int getYear()
int getMonthValue()
int getDayOfMonth()
得到当前日期的年月日
DayOfWeek getDayOfWeek
得到当前日期是星期几。
LocalDate plusDays(int n)
生成当前日期之后的日期
LocalDate minusDays(int n)
生成当前日期之后的日期
分析:
date = date.minusDays(today-1);
这一句是唯一难点句
date = date.minusDays(today-1);
在此之前,date表示的当前的时间对象,假设是10号,10-1=9,在10号前的9天即1号就是找到当月的第一天的基本信息。
以上是关于关于JAVA核心技术(卷一)读后的思考(对象与类,日历的构造)的主要内容,如果未能解决你的问题,请参考以下文章
关于JAVA核心技术(卷一)读后的思考(lambda表达式的讨论)
关于JAVA核心技术(卷一)读后的思考(equals方法的讨论)
关于JAVA核心技术(卷一)读后的思考(回调,clone的讨论)