[core java学习笔记][第四章对象与类]
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学习笔记][第四章对象与类]的更多相关文章
- Java 学习笔记 ------第四章 认识对象
本章学习目标: 区分基本类型与类类型 了解对象与参考的关系 从打包器认识对象 以对象观点看待数组 认识字符串的特性 一."=" 和 "==" 当=用于基本类型时 ...
- Java学习笔记(2)--- 对象和类入门,java包,this 和 super区别
1.对象和类(Object and class): 一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作. 面对对象编程是java非常重要的一部分,作者本身之前学过c ...
- [core java学习笔记][第十一章异常断言日志调试]
第11章 异常,断言,日志,调试 处理错误 捕获异常 使用异常机制的技巧 使用断言 日志 测试技巧 GUI程序排错技巧 使用调试器 11.1 处理错误 11.1.1异常分类 都继承自Throwable ...
- Java 学习笔记 ------第五章 对象封装
本章学习目标: 了解封装的概念与实现 定义类.构造函数与方法 使用方法重载与不定长度自变量 了解static方法 一.Java封装概念 在面向对象程式设计方法中,封装(英语:Encapsulation ...
- [core java学习笔记][第六章接口与内部类]
接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable ...
- [core Java学习笔记][第一二三章基本语法]
基本语法 1 Java 简单的类型 1.1 一些常量 正无穷大 Double.POSITVE_INFINITY 负无穷大 Double.NEGATIVE_INFINITY 不存在 Double.NaN ...
- [core java学习笔记][第五章继承]
5.1 类.超类和子类 定义 class Manager extends Employee { 添加方法和域 } 权限 派生类不能使用基类的私有变量 派生类调用基类的方法 利用super这个关键词 s ...
- java学习笔记(3)——对象与类(日期)
变量.类型.赋值.运算符等等: https://blog.csdn.net/common77zwq/article/details/81988676 1.概念: 面向对象程序设计OOP.类class. ...
- Asp.Net Core WebApi学习笔记(四)-- Middleware
Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Mid ...
随机推荐
- Enabling Active Directory Authentication for VMWare Server running on Linux《转载》
Enabling Active Directory Authentication for VMWare Server running on Linux Version 0.2 - Adam Breid ...
- MVC5移除不常用Nuget命令
---移除JQuery.* 和bootstartp Uninstall-Package bootstrap Uninstall-Package Microsoft.jQuery.Unobtrusive ...
- Qt添加窗口背景图片、Label图片显示、、Label文字显示
一.添加窗口背景图片 重写MainWindow绘制事件 void MainWindow::paintEvent(QPaintEvent *event) { QPainter painter(this) ...
- 编译Boost 详细步骤
vs2008编译boost [一.Boost库的介绍] Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一. Boost库由C++标准委员会 ...
- Oracle11g R2学习系列 之二基本概念和环境介绍
昨天安装好了之后,发现用Chrome打开OEM发现是英文的,搞得我好奇怪:安装时明明自动显示的是中文的,为何会是英文的呢.后来想想会不会是Oracle用的是浏览器的语言呢,果断打开Chrome的设置, ...
- Hibernate学习笔记(一):mycelipse建立项目流程(未完成)
1.部署数据库: 2.部署项目: 3.引入Hibernate: 4.url配置
- Python学习笔记九-文件读写
1,读取文件: f=open('目录','读写模式',encoding='gbk,error='egiong') 后三项可以不写但是默认是' r'读模式:open函数打开的文件对象会自动加上read( ...
- 网上查了点关于windows注册表的知识,发现基本名词没理解好,于是整理这篇笔记(可能个别地方不准确,先这么理解吧),有了这个理解,再去看网上的文章,就差不读了
打开注册表编辑器,左边窗格中显示的是“注册表项”,右边窗格中显示的是“注册表项的项值” 子项:子项是相对父项而言的,在某一个项(父项)下面出现的项(子项) 值项:一个项可以有一个或多个项值,当前被使用 ...
- 微软在MSDN中更新了Win8.1批量授权版镜像(中文版更新完毕&版本说明)
微软在MSDN中更新了Win8.1大客户专业版和企业版镜像,零售版镜像(即专业版+核心版二合一镜像)没有更新,依然是9月份发布的版本.已证实,新的批量授权版镜像是集成了GA Rollup A更新,并且 ...
- Xs and Os Referee
Xs and Os Referee 1 def checkio(game_result): 2 winner = 'D' 3 4 for row in game_result: 5 if row[0] ...