变量、类型、赋值、运算符等等:

https://blog.csdn.net/common77zwq/article/details/81988676

1.概念:

  面向对象程序设计OOP、类class、构造、实例、封装、实例域、方法、状态

  对象的3各主要特性:

 

  行为、状态、标识

  类之间的关系:依赖、聚合、继承

2.Date,LocalDate用法:

  import java.util.Date;//不鼓励使用Date

  import java.time.LocalDate;

  import.java.time.*;

    https://www.cnblogs.com/jtools/p/6502999.html

3.日期:

  LocalDate date = LocalDate now();//构造LocalDate类对象

  LocalDate newYearsEve = LocalDate.of(1999,12,31);//构造特定日期

  int year = newYearsEve.getYear();//1999

  int month = newYearsEve.getMonthValue();//12

  int day = newYearsEve.getDayOfMonth();//31

  LocalDate aThousandDaysLater = newYearsEve.plusDays(1000);//加上1000天之后的新日期

  date = date.minusDays(today-1);//将date设置为这个月的第一天

  DaysOfWeek weekday = date.getDaysOfWeek();//星期几

  int value =weekday.getValue();//1=Monday,...,7=Sunday

4.Employee类:

  源文件的文件名必须与public类的名字一致。

  一个源文件中只能有一个公有(类)public,可以有多个非共有类。

  构造器:

    *构造器与类同名;

    *每个类可以有一个以上的构造器;

    *构造器可以有0、1或多个参数;

    *构造器没有返回值;

    *构造器总是伴随着new操作一起调用;//Employee[] staff = new Employee("nengxiaoyuan",10000,2020,5,20)

    *不要在构造器中定义与实例域重名的局部变量。

5. public:任何类的任何方法都可以调用这些方法;

  private:只有该类自身的方法能够访问这些实例域;

6. 方法:用于操作对象以及存取它们的实例域,一个方法可以访问所属类的所有对象的私有数据。

    隐式参数:出现在方法名前的类对象,用this表示;

    显式参数:方法名后面括号中的数值

  访问器方法(域访问器):只反馈实例域值

     *不要编写返回引用可变对象的访问器方法;

     *LocalDate类不可变(没有更改器方法),Date类可变;

     *如果需要返沪一个可变对象的引用,先进行克隆.

7.final实例域(公有常量):用于基本类型域、不可变类域 //按常量定义理解

8.static静态域:属于类,不属于对象,每个类中只含有一个

9.静态常量:public static final double PI = 3.1415926...

  System.out

10.静态方法:不能向对象实施操作的方法,如Math.pow,不需要使用对象调用静态方法

  main方法也是一个静态方法

  两种情况下使用静态方法:

    一个方法不需要访问对象状态,其所需参数都是通过显式参数提供;

    一个方法只需要访问类的静态域。

11.工厂方法:形如LocalDate.now、LocalDate.of、NumberFormat类等

12.方法参数:Java程序总是按值调用(方法不能修改传递给它的任何参数变量的内容)

  方法参数的两种类型:

    基本数据类型(数值、布尔)

    对象引用

  *一个方法不能修改一个基本数据类型的参数(数值型或布尔型)

  *一个方法可以改变一个对象参数的状态;

  *一个方法不能让对象参数引用一个新的对象。

13. 重载:多个方法有相同的名字、不同的参数

*必须明确地初始化方法中的局部变量,否则将会被自动初始化为默认值0、false、null

*很多类都包含一个无参数的构造函数

*若编写一个类时没有编写构造器,则系统会提供一个无参数构造器

*new ClassName();//构造该实例之前,需要提供一个默认的构造器:public ClassName() {}

14.显式域初始化:

执行构造器之前,先执行赋值操作

初始值不一定是常量

15.如果构造器的第一个语句形如this(...),则为调用同一个类的另一个构造器

  public Employee(String n, double s)
{
name = n;
salary = s;
} public Employee(double s)
{
// calls the Employee(String, double) constructor
this("Employee #" + nextId, s);
}

16.初始化数据域的方法:

  *在构造器中设置值;

  *在声明中赋值;

  *初始化块(建议放在域定义之后)

*调用构造器的具体步骤:

1 所有数据域被初始化为默认值(0、 false、 null)

2 按照在类声明中出现的次序,一次执行所有域初始化语句和初始化块

3 若构造器第一行调用了第二个构造器,则执行第二个构造器主体

4 执行这个构造器的主体

*静态初始化块:将代码放在一个块中,并标记为static

   // static initialization block
static
{
var generator = new Random();
// set nextId to a random number between 0 and 9999
nextId = generator.nextInt(10000);
}

17.Java有自动的垃圾回收站,不需要人工回收内存,所以Java不支持析构器

18.Java允许使用包package将类组织起来:使用包来确保类名的唯一性,嵌套的包之间没有任何关系

  例如:java.long、 java.util、 java.net

  *一个类可以使用所属包中的所有类 和 其他包中的公有类

  *两种方式访问另一个包中的公有类:

    1 在每个类名前添加完整的包名(不提倡,麻烦)

    2 使用import语句(首推),import语句应位于源文件的顶部、package语句的后面

19.在Eclipse中,使用菜单项Source->Organize Imports。package语句会自动扩展指定的导入列表

20.import不仅可以导入类,还可以导入静态方法和静态域

import static java.lang.System.*;

import static java.lang.System.out;

21.如果没有指定public、private,该部分可以被同一个包中的所有方法访问

22.注释:以/**开始,以*/结束

-每个/**...*/文档注释在标记之后紧跟着自由格式文本,标记由@开始,如@author,@param

-类注释必须放在import语句之后,类定义之前

-每一个方法注释必须在所描述的方法之前

23.类设计技巧:

1 一定要保证数据私有

2 一定要对数据初始化

3 不要在类中使用过多的基本类型

4 不是所有的域都需要独立的域访问器和域更改器

5 将职责过多的类分解

6 类名和方法名要能够提现他们的职责

7 优先使用不可变的类

java学习笔记(3)——对象与类(日期)的更多相关文章

  1. java学习笔记07--日期操作类

    java学习笔记07--日期操作类   一.Date类 在java.util包中定义了Date类,Date类本身使用非常简单,直接输出其实例化对象即可. public class T { public ...

  2. java学习笔记之反射—Class类实例化和对象的反射实例化

    反射之中所有的核心操作都是通过Class类对象展开的,可以说Class类是反射操作的根源所在,但是这个类的实例化对象,可以采用三种方式完成. java.lang.Class类的定义: public f ...

  3. Java 读书笔记 (二) 对象和类

    Java 作为一种面向对象语言,支持以下基本概念: 多态 继承 封闭 抽象 类 对象 实例 方法 重载 对象: 是类的一个实例,有状态和行为.以人为例,黄种人.白种人.黑种人为类,每一个具体的人为类的 ...

  4. Java学习笔记之对象的复制和克隆

    假如说你想复制一个简单变量.很简单: int apples = 5; int pears = apples; 不仅仅是int类型,其它七种原始数据类型(boolean,char,byte,short, ...

  5. Java学习笔记day08_day09_对象实例化_private_this

    1.类与对象 类就是一个模版. 对象的实例化就是根据模版类, 使用new关键字创建实际的对象. 2.类的定义及创建对象 类的定义格式: public class 类名{ //属性(变量) 数据类型 变 ...

  6. Java学习笔记(二)——类和对象

    [1]类是模子,确定对象将会拥有的特征(属性)和行为(方法). [2]类的特点:类是对象的类型: 具有相同属性和方法的一组对象的集合. [3]属性:对象具有的各种特征(每个对象的每个属性都拥有特定值) ...

  7. Java学习笔记【四、类、对象、接口】

    编程语言的发展 机器语言 过程语言 面向对象编程--封装.继承.多态 关键字 extends implements override overload super this static abstra ...

  8. Java学习笔记23(Calendar类)

    Calendar意味日历,对Date类中的很多方法做了改进 Calendar类是一个抽象类,不可以见对象,需要子类完成实现 不过这个类有特殊之处,不需要创建子类对象,而是使用它的静态方法直接获取: 示 ...

  9. java学习笔记17(Calendarl类)

    Calendar类:(日历) 用法:Calendar是一个抽象类:不能实例化(不能new),使用时通过子类完成实现,不过这个类不需要创建子类对象,而是通过静态方法直接获取: 获取对象方法:getIns ...

  10. Java学习笔记七——数组工具类Arrays

    数组工具类Arrays Java提供的Arrays类里包含的一些static修饰的方法可以直接操作数组.若将里面的方法用熟的话,那开发效率会大大提高.下面介绍其中的方法. List<T> ...

随机推荐

  1. MySQL-with rollup函数运用 _20160930

    在博客里http://www.cnblogs.com/Mr-Cxy/p/5898839.html提到了行转列, 如果想在下面这个表下面添加一行 总计 数据行SQL代码怎么实现 并且根据9月金额进行城市 ...

  2. tyvj 1203 机器分配

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 描述 总公司拥有高效生产设备M台,准备分给下属的N个公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何 ...

  3. CRC16算法之一:CRC16-CCITT-FALSE算法的java实现

    CRC16算法系列文章: CRC16算法之一:CRC16-CCITT-FALSE算法的java实现 CRC16算法之二:CRC16-CCITT-XMODEM算法的java实现 CRC16算法之三:CR ...

  4. CF 949D Curfew——贪心(思路!!!)

    题目:http://codeforces.com/contest/949/problem/D 有二分答案的思路. 如果二分了一个答案,首先可知越靠中间的应该大约越容易满足,因为方便把别的房间的人聚集过 ...

  5. Ubuntu 16.04 LTS 一键安装VNC

    Ubuntu 16.04 LTS 安装VNC,在百度和谷歌找了很多教程,不是太老,就是说的驴唇不对马嘴,所以忍不住写一些以正视听. Ubuntu 16.04 LTS是最近出的LTS版本系统,估计未来也 ...

  6. unix-like 图形服务组件(ubuntu)

    ubuntu18.04 准备回归wayland, 因为手机平板的ubuntu无人使用,开发成本太高.所以弃用Unity8, 重新改用 waylang 的GNOME sudo systemctl dis ...

  7. S5pv210 HDMI 接口在 Linux 3.0.8 驱动框架解析

    作者:liukun321 咕唧咕唧 日期:2014.1.18 转载请标明作者.出处:http://blog.csdn.net/liukun321/article/details/18452663 本文 ...

  8. Advanced R之词汇表

    转载请注明出处:http://www.cnblogs.com/lizichao/p/4800513.html 词汇表 想要玩得转R,重要的一点是有一个好的工作词汇表.以下是我认为的一个好的词汇表.你不 ...

  9. 使用superobject 新建Json数据(数组)

    1. 要得到的Json数据:[{"name":"张三","age": 17},{"name":"李四" ...

  10. 抽象方法(abstract method) 和 虚方法 (virtual method), 重载(overload) 和 重写(override)的区别于联系

    1. 抽象方法 (abstract method) 在抽象类中,可以存在没有实现的方法,只是该方法必须声明为abstract抽象方法. 在继承此抽象类的类中,通过给方法加上override关键字来实现 ...