4.3 用户自定义类

4.3.1 类数组的声明

需要两次new

Employee[]=staff=new Employedd[3];
staff[0]=new Employedd(参数列表);
staff[1]=new Employedd(参数列表);
staff[2]=new Employedd(参数列表);

4.3.2 封装的注意

不要直接一个retrun一个类,应该先clone

public Date getHireDay()
{
return hireDay; //这是错误的,只是浅复制而已;
}
public Date getHireDay()
{
return hireDay.clone();
}

4.3.3

类的实例能调用其他同一个类实例的私有属性

4.3.4 final实例域

private final String name

必须在构造函数中,设置他的值,并且不能更改

final大多应用于基本类型域和不可变域

对于类似Date这种变量 final修饰只是让这个变量不能指向其他区域,但是能够更改值

Date就是一个可变域

4.4 静态域与静态方法

4.4.1 静态域

静态域属于类,不属于实例

所有类的实例共用一个静态域,即使没有实例也能调用

4.4.2 静态常量

PI,和System.IO都是静态常量

4.4.3 静态方法

不依赖实例的方法,如Math.pow()

不能访问实例域,只能访问静态域

4.4.4 工厂方法

4.5 方法参数

类实例当参数时,参数会指向同一块内存。所以修改参数的时候,等于修改实例。

如果想不被修改,可以clone

4.6对象构造

4.6.1 初始化,静态方法

private static int nextId;
private int id=assignId()
private static int assignId()
{
int r=nextId;
nextId++;
return r;
}

4.6.2 调用另一个构造函数

Java中独有,可以让Employee(double)构造器将调用Employee(String,double)

public Employee(double s)
{
this("Employee #"+nextId,s);// Employedd(String,double)
nextId++;
}

4.7 包

4.7.2 静态导入

import语句不仅可以导入类,还增加了导入静态方法和静态域的功能

import static java.lang.System.*;
out.printf("Hello World");//System.out
exit(0); //System.exit

4.7.3 将类放入包中

package com.horstmann.corejava;

以后具体学习

[core java学习笔记][第四章对象与类]的更多相关文章

  1. Java 学习笔记 ------第四章 认识对象

    本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...

  2. Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别

    1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 面对对象编程是java非常重要的一部分,作者本身之前学过c ...

  3. [core java学习笔记][第十一章异常断言日志调试]

    第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...

  4. Java 学习笔记 ------第五章 对象封装

    本章学习目标: 了解封装的概念与实现 定义类.构造函数与方法 使用方法重载与不定长度自变量 了解static方法 一.Java封装概念 在面向对象程式设计方法中,封装(英语:Encapsulation ...

  5. [core java学习笔记][第六章接口与内部类]

    接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable ...

  6. [core Java学习笔记][第一二三章基本语法]

    基本语法 1 Java 简单的类型 1.1 一些常量 正无穷大 Double.POSITVE_INFINITY 负无穷大 Double.NEGATIVE_INFINITY 不存在 Double.NaN ...

  7. [core java学习笔记][第五章继承]

    5.1 类.超类和子类 定义 class Manager extends Employee { 添加方法和域 } 权限 派生类不能使用基类的私有变量 派生类调用基类的方法 利用super这个关键词 s ...

  8. java学习笔记(3)——对象与类(日期)

    变量.类型.赋值.运算符等等: https://blog.csdn.net/common77zwq/article/details/81988676 1.概念: 面向对象程序设计OOP.类class. ...

  9. Asp.Net Core WebApi学习笔记(四)-- Middleware

    Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Mid ...

随机推荐

  1. jquery之radio

    <td class="queryTitle" width="80px">是否启用</td> <td class="que ...

  2. CSS基础知识笔记(二)之选择器

    CSS选择器 选择器{ 样式; } 每一条css样式声明(定义)由两部分组成,形式如下: 在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元 ...

  3. MVC5移除不常用Nuget命令

    ---移除JQuery.* 和bootstartp Uninstall-Package bootstrap Uninstall-Package Microsoft.jQuery.Unobtrusive ...

  4. contenteditable 属性

    定义和用法 contenteditable 属性规定是否可编辑元素的内容. 语法 <element contenteditable="value"> 属性值 值 描述 ...

  5. (转)将wcf 以webservice的方式调用

    将wcf 以webservice的方式调用 问题:a公司使用wcf 发布服务(.net Framework 3.0 or 3.5),b公司需要使用a公司发布的服务 ,但b公司目前阶段只使用.net F ...

  6. sql 2000 分页

    create PROCEDURE [dbo].[Proc_GetPageList] (   @Tables varchar(1000),          --表名   @PK varchar(100 ...

  7. mysql grant all privileges on

    遇到了 SQLException: access denied for @'localhost' (using password: no) 解决办法 grant all privileges on * ...

  8. 连接SQLite 创建ADO.net实体类

    0.开发环境 win10,vs2013-x64 1.安装: sqlite-netFx451-setup-bundle-x86-2013-1.0.102.0.exe 注意事项:选在VisualStudi ...

  9. 解决Sublime-Text-3在ubuntu下中文输入的问题

    在ubuntu下使用ST这神器已经一段日子了,但是一直有个纠结的问题,就是中文输入非常坑爹,曾经一段时间,使用inputHelper这个插件来解决, 但是……每次都要按个快捷键,弹出一个小小小框来输入 ...

  10. git:hook declined FATAL: W refs/heads DENIED by fallthru error

    hook declined FATAL: W refs/heads DENIED by fallthru error git提交代码时报错,网上查了,最终结果竟然是测试人员没有给我配置写的权限,配置了 ...