[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 ...
随机推荐
- XMLHTTP请求的当前状态
readyState,此属性只读,状态用长度为4的整型表示.定义如下: 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法) 1 (初始化) 对象已建立,尚未调用send方法 2 (发 ...
- python学习-day3
今天是第三天学习,加油! 第一部分 集合 一.集合 1.什么是集合以及特性? 特性:无序的,不重复的序列,可嵌套. 2.创建集合 方法一:创建空集合 s1 = set() print(type(s1) ...
- word-wrap 和 word-break
一.word-wrap 1.浏览器支持 所有主流浏览器都支持 word-wrap属性 2.定义和用法 word-wrap 属性允许长单词或 URL 地址换行到下一行. 语法 word-wrap: no ...
- Android学习之Activity之间的数据传递
Activity与Activity之间很多情况下都需要进行数据的传递,下面就用几个简单的例子来看一下. (一).一个Activity启动另一个Activity并将数据传递到这个Activity当中 思 ...
- 系统提供的UIImagePickerController
1.从系统相册中读取 /* 判断选择的读取类型是否支持 UIImagePickerControllerSourceTypePhotoLibrary,普通相册 UIImagePickerControll ...
- 关于局域网内IIS部署网站,本机可访问,而网内其他用户无法访问问题的解决方法
在Window7操作系统中安装配置好IIS后,在本地IIS上部署网站程序没有问题,但是局域网等远程用户不能正常访问网站程序,提示“Internet Explorer 无法显示该网页”. 问题解决思路如 ...
- java的InputStream和InputStreamReader有什么区别??
解释一: InputStream 此抽象类是表示字节输入流的所有类的超类 InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符.它使用 ...
- hdu EXCEL排序
Problem Description Excel可以对一组纪录按任意指定列排序.现请你编写程序实现类似功能. Input 测试输入包含若干测试用例.每个测试用例的第1行包含两个整数 N (<= ...
- AngularJS中ng-options简单用法及预选项失败的原因
刚刚接触AngularJs,记录一下ng-options的使用. 1.构造key-value数据 $scope.types = [ {id:"1",type:"AA&qu ...
- javascript数组方法鉴赏一
创建数组 如果你习惯了用 new 来实例化对象的形式,那么在js中一定会疑惑,可选的参数数量代表的意义截然不同. new Array(size);//传一个参数的时候分两种情况,size是正整数时代表 ...