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

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. configured to save RDB snapshots, but is currently not able to persist o...

    Redis问题 MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on d ...

  2. AIX 7.1上安装Oracle11g

    1. 上传oracle 11g介质到AIX 我下载的介质是aix.ppc64_11gR2_database_1of2.zip和aix.ppc64_11gR2_database_2of2.zip, 执行 ...

  3. 【转】Pro Android学习笔记(四):了解Android资源(下)

    处理任意的XML文件 自定义的xml文件放置在res/xml/下,可以通过R.xml.file_name来获取一个XMLResourceParser对象.下面是xml文件的例子: <rootna ...

  4. C# 使用 StreamWriter 写入数据

    NetworkStream 类.MemoryStream类 和 FileStream 类都提供了以字节为基本单位的读写方法,但是这种方法首先将待写入的数据转换为字节序列后才能进行读写,当操作的是使用字 ...

  5. GridView中数据行的操作

    一个是直接动态绑定gridview 用3楼的办法就可以了 int j=1;//j的数值表示你要取的那一列的索引,要取第二列,j就设为1for (int i = 0; i < this.GridV ...

  6. iOS 国际化 本地化步骤 Localizations

    1. 在项目里面创建一个InfoPlist.strings 文件 2. 到PROJECT---Info---Localizations下面添加你想要添加的语言 3. 在InfoPlist.string ...

  7. day1 java基础回顾-IO流

    IO流的分类 注:这几个类都是抽象类. IO解决问题: 解决设备与设备之间 的数据传输问题. 比如: 硬盘--->内存 内存----->硬盘 字节流: 输入字节流:---------| I ...

  8. Centos7.2 下安装配置pip

    一.pip下载 wget https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11 ...

  9. shell初级-----构建基本脚本

    使用多个命令 如果想要多个命令同时运行,可以把它们放在一行,用分号隔开. date;who 创建shell脚本文件 创建shell脚本时,必须在文件第一行指定要使用的shell #!/bin/bash ...

  10. Javascript实现打开或退出浏览器全屏

    废话不多说,直接上代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www. ...