Java核心技术_笔记4-1

1.类(class)中包括 实例域(数据) 和 方法
对特定对象来说 实例域值的集合 即 状态

2.三个主要特性
对象的行为、状态、标识(同状态同方法之间的区别)

3常见关系
依赖:一个类的方法操纵另一个类的对象
聚合:A类对象包含B类对象
继承

4.构造器 构造新的实例
构造器名字与实例相同,构造新实例加new
new Date()
构造新对象,用=来引用

5.
a=new Date()
b=a
仅仅是引用同一个对象,并没有创建新对象
b=null
表明没有任何引用对象

6.只访问对象,不修改对象的称为访问器方法
如方法会返回一个新值,而作为参数所用的旧值不变

7.
常用结构,分为3部分
class Employee
{
/ / instance fields
private String name ;
private double salary ;
private Local Date hireDay ;
/ / constructor
public Employee ( String n , double s , int year , int month , int day )
{
name = n ;
salary = s ;
hireDay = LocalDate . of ( year , month , day ) ;
/ / a method
public String getName()
{
return name ;
/ / more methods
······
}

8.文件名Main.java必须与带有public访问修饰符的名字相匹配,源文件中只能有一个公有类,可以有若干个非公有类。
编译时每个class创建一个.class文件
习惯上每个类存在于一个源文件中

9.构造器与类同名,总是伴随着new的执行而调用
构造器中不能建立 与 实例域重名的变量(方法中是可以的)

10.
隐式参数:方法名之前类对象,用this表示(方法所在类的重新调用)
显式参数:方法名后括号中的值

11.
不要编写 返回 引用 可变对象 的访问器方法
如Date
要返回一个引用变量 可变 数据域的拷贝, 就应该使用clone

12.方法可以访问所属类 以及 所属对象的所有私有数据

13.public private

14.final:在构造器初始化之后,这个域的值被设置。在之后的操作中,不能对他进行修改

用于
基本类型域、不可变 类 的域(对象中每个方法不会改变对象)

15.每个类中只有一个这样的域。
一个类可以创建多个对象,
每个对象有各自不同的变量,
但每个对象共用一个静态变量

16.静态变量:静态常量用的多
public static final double PI=3.14

17.静态方法:
不需要构造对象即可使用
(1)不需要访问对象的状态(类中非静态变量)
(2)只访问类的静态域

18.静态工厂方法创建对象,不需要构造器
NumberFormatcurrency Formatter = NumberFormat getCurrencylnstance()
不用new

19.每一个类方法可以有一个main进行测试

20.Java方法参数是按值调用,不能修改传递给他的参数变量的内容,方法中使用的是参数的拷贝值
参数类型:
(1)基本数据类型(拷贝的值,参数基本不会变)
(2)对象引用(拷贝的引用,通过不同引用指向同一对象,可改变对象参数)

21.拷贝的引用并不是引用本身,知识通过拷贝的引用对对象进行操作

22.
(1) 一个方法不能修改一个基本数据类型的参数 ( 即数值型或布尔型 ) 。
(2)一个方法可以改变一个对象参数的状态 。
(3)一个方法不能让对象参数引用一个新的对象。

23.类中构造器 或者 方法
可以有相同名字,但参数不同,即产生了重载

24.class中的实例域没赋值会初始化(0,false,null)
方法中的局部变量必须初始化

25.每个类至少有一个构造器
若没有会自动加一个无参构造器
若已经有 有参数的构造器则不会再添加

26.构造器中第一个语句this
将调用同一类的另一个构造器

27.初始化块,声明实例域之后在{}中进行初始化
先运行初始化块,在运行构造器

28.
静态域的初始化块
static
{
······
}

29.
初始化块在类中最先执行

30.
用包(package)将类组织起来
建议将公司的因特网域名(这显然是独一无二的)
以逆序的形式作为包名

31.
import类导入
在源文件顶部,位于package之前
import java.time.*可导入time中所有类(一个包)
*一次导入一个包

32.
若有不同包中相同名类导入,可在类名前加完整包名

33.
import导入静态方法或静态域
import static java.lang.System.*;
out.println(“fuck”)

34.
类放入包中,将包的名字放在原文件夹开头
package com.hh.ff
如果没有package,就放入一个默认包

35.
public可以被任意类使用
private只能被定义他们的类使用
都不加可以被同一包中任意方法使用

猜你喜欢

转载自blog.csdn.net/Matrix576/article/details/82313795
今日推荐