关于java核心技术(卷一)读后的思考(对象与类,日历的构造)

zzuzhouxiang      2022-04-27     487

关键词:

关于这本书,前三张都是基本内容,我觉得个人掌握的还可以,所以从第四章开始整理每日所学。

第四章主要说的是对象和类。第一部分是面向对象程序设计的概述。其中面向对象程序设计简写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核心技术(卷一)读后的思考(内部类的讨论)

内部类内部类是定义在另一个类中的类。定义内部类的原因有:1)内部类方法可以访问该类定义所在的作用域中的数据,包括私有的数据。2)内部类可以对同一个包中的其他类隐藏起来。3)当想要定义一个回调函数且不想编写... 查看详情

关于java核心技术(卷一)读后的思考(equals方法的讨论)

这是我反复看了两遍才理解的部分。其中也不乏参考了他人的微博内容,才大致对这个方法有所理解。首先我们从Object类开始说起,书中已经说了Object类是Java中所有类的始祖,在Java中的每个类都是由他扩展而来的,但在现实使... 查看详情

关于java核心技术(卷一)读后的思考(回调,clone的讨论)

回调回调是一种常见的程序设计模式。这种模式中,可以指出某个特定事件发生时应该采取的动作。直接给上代码packagecom.java.timer;importjava.awt.event.ActionListener;importjavax.swing.JOptionPane;importjavax.swing.Timer;publicclassTimerTest{publicstaticvoidm 查看详情

关于java核心技术(卷一)读后的思考(lambda表达式的讨论)

lambda表达式lambda表达式是一个可传递的代码块。可以以后执行一次或者多次。在程序运行中我们经常会遇到传递代码段的情况,但是我们一般都是先构造一个对象,然后通过对象调用相应的代码块来实现传递代码块的目的,这个... 查看详情

关于java核心技术(卷一)读后的思考(泛型数组列表的讨论)

在C++中编译时是要确定数组大小的,而Java有所不同,它允许在运行时确定数组的大小。但是如果仅通过数组是无法改变运行时无法动态更改数组的问题。一旦确定了数组大小,就很难改变他了数组的大小了,要解决这个问题,... 查看详情

关于java核心技术(卷一)读后的思考(用户自定义类,静态域和静态方法的思考以及方法参数)

用户自定义类:这部分并没有太过于困难的部分,借由代码进行复习:Employee类的定义:packagecom.java.EmployeeTest;importjava.time.*;publicclassEmployee{   privateStringname;   privatedoublesalary;  &nb 查看详情

《java核心技术卷一》随笔

1.静态常量:  静态变量使用得比较少,但静态常量使用得比较多,例如,在Math类中定义了一个静态常量:  publicstaticfinalPI=3.141592653;  在程序中,可以采用Math.PI的形式获得这个常量。  如果关键字static被省略,PI就变... 查看详情

java核心技术卷一笔记8

第十四章并发多进程和多线程的区别:每个进程拥有自己的一套变量,而线程共享数据。14.1什么是线程不要调用Thread类或Runnable对象的run方法。直接调用run方法只会执行同一个线程中的任务,而不会启动新线程。应该调用start方... 查看详情

java核心技术卷一笔记六date类

在Java核心技术卷就行了一前期 date类出现的频率很高 所以就对date类进行了小小的整合Date类有两个date类表示特定时间的类 这个构造函数分配一个Date对象并初始化它代表指定的毫秒数,因为被称为“纪元”,即1970年1... 查看详情

go语言核心技术(卷一)之2.1-整数

第二章序 在计算机底层,一切都是比特位。然而计算机一般都操作固定大小的数,称之为字(word)。字会被解释为整数、浮点数、比特位数组、内存地址等,这些字又可以进一步聚合成数据包(packet)、像素点、作品集、是个或者... 查看详情

java核心技术卷一笔记7

第九章集合9.1Java集合框架在Java类库中,集合类的基本接口是Collection接口。访问集合元素时,使用“foreach”循环编译器会将其翻译成带有迭代器的循环。元素被访问的数据取决于集合类型,对于ArrayList进行迭代就会按顺序得到... 查看详情

《java核心技术(卷一)》读书笔记——第六章:内部类

1.      内部类的概念?类中类2.      为什么要用内部类?内部类的方法可以访问外部类的实例域内部类对外部类的同一个包中的类实现了隐藏匿名内部类在“想要定义一个回调函数却... 查看详情

面霸篇:高频java基础问题(核心卷一)(代码片段)

从面试题作为切入点提升大家的Java内功,所谓根基不牢,地动山摇。只有扎实的基础,才是写出写好代码。拒绝知识碎片化码哥在《Redis系列》的开篇Redis为什么这么快中说过:学习一个技术,通常只接触了零... 查看详情

《大型网站技术架构:核心原理与案例分析》读后感

 李智慧的著作《大型网站技术架构:核心原理与案例分析》,写得非常好, 本着学习的态度,对于书中的关于性能优化的讲解做了一个思维导图,供大家梳理思路和学习之用。抛砖引玉。   查看详情

左耳朵耗子关于技术变现一文读后感

核心论点我完全没有必要通过打工听人安排而活着,而是反过来通过在公司工作提高自己的技能,让自己可以更为独立和只有地生活如何技术变现保持学习,掌握大多数人不能掌握的技能,先让周围的人有求于我关注有价值的东... 查看详情

[java学习笔记]java核心技术卷1第四章

  第4章对象与类4.1类和对象的基本概念描述了类和对象的基本概念,以及类之间的关系介绍。程序中的很多对象来自于标准库,还有一些自定义的。结构化程序设计:通过设计一系列的过程(算法),选择合适的存储方式来... 查看详情

2016年3月30日_java学习笔记

...老师的视频面向对象的部分看完了,现在开心重新看JAVA核心技术-卷一,直接从第四章对象与类开始看起。3、书中提到类之间有三种最常见的关系,依赖,聚合,继承。依赖大概能理解,就是一个类使用了另外一个类的方法或者... 查看详情

《构建之法》第十六章读后感更正

第十六章IT行业的创新1.关于灵感。灵光闪现固然重要,很多伟大的发明依靠的就是灵光一现的基础,但是灵光闪现的前提是个人的思考,长时间的思考。完成这一灵光的基础是不断的尝试,提高自己的技术。这样才会将自己的... 查看详情