java核心技术卷一学习 2016.11.30
来源:互联网 发布:云计算上市公司排名 编辑:程序博客网 时间:2024/06/05 22:50
第四章 2
静态域与静态方法
静态域
private static int nextId = 1;
静态域nextId
这个类的所有实例将共享一个nextId
域
通过setId()
和getId()
方法来对私有的id进行处理
public static void b(){ Employee jj = new Employee("jj", 5000, 1993, 12, 31); jj.setId(); System.out.println(jj.getId()); }
public class Employee(){ private String name; private double salary; private LocalDate hireDay; private int id; private static int nextId = 1; public Employee(String name, double salary, int year, int month, int day) { this.name = name; this.salary = salary; hireDay = LocalDate.of(year, month, day); } public int getId() { return id; } public void setId() { id = nextId; nextId++; } public String getName() { return name; } public double getSalary() { return salary; } public LocalDate getHireDay() { return hireDay; } public void raiseSalary(double byPercent) { double raise = salary * byPercent / 100; salary += raise; }}
静态方法
静态方法是一种不能向对象实施操作的方法。换句话说,没有隐式的参数。
int n = Employee.getnextId();
private static int nextId = 1;public static int getnextId(){ return nextId;}
以上私有的静态的nextId
只可以通过静态方法getnextId
方法来操作处理。
总结:使用静态方法
1 不需要访问对象状态,其所需参数都是通过显示参数提供。
2 只需要访问类的静态域
main方法
main方法也是一个静态方法。main方法不对任何对象进行操作。实际上,在启动程序时还没有任何一个对象。静态main方法将执行并创建程序所需要的对象。
方法参数
按值调用表示方法接收的是调用者提供的值。
按引用调用表示方法接收的是调用者提供的变量地址。
java程序设计语言总是采用按值调用。方法得到的是所有有参数的一个拷贝。
方法不能修改传递给它的任何参数变量的内容。
public static void main(String[] args) { // TODO Auto-generated method stub double percent = 10; tripleValue(percent); System.out.println(percent); } public static void tripleValue(double x) { x = 3 * x; }
方法参数共有两种类型:
1 基本数据类型
2 对象引用
一个方法不可能修改一个基本数据类型的参数。
而对象引用作为参数就不同了,可以很容易的实现。
无法交换的原因是:方法中交换的只是形参。
public static void a() { Employee a = new Employee("a", 1000, 1990, 1, 1); Employee b = new Employee("b", 2000, 2000, 12, 12); System.out.println("a:" + a.getName()); System.out.println("b:" + b.getName()); a.setId(); b.setId(); swap(a, b); System.out.println("a:" + a.getName()); System.out.println("b:" + b.getName()); Employee temp = a; a = b; b = temp; System.out.println("x:" + a.getName()); System.out.println("y:" + b.getName()); } public static void swap(Employee x, Employee y) { Employee temp = x; x = y; y = temp; System.out.println("x:" + x.getName()); System.out.println("y:" + y.getName()); }
0 0
- java核心技术卷一学习 2016.11.30
- java核心技术卷一学习 2016.11.28
- java核心技术卷一学习 2016.11.29
- java核心技术卷一学习 2016.11.27/1
- java核心技术卷一学习 2016.11.27/3
- java核心技术卷一学习 2016.11.27/2
- Java核心技术卷一学习笔记1
- java核心技术卷一学习 2016.12.1
- 《Java 核心技术卷一》读书笔记
- java核心技术卷一 读书笔记
- Java核心技术卷I基础知识-学习笔记(一)
- [学习笔记] Java核心技术 卷一:基础知识 集合(六)
- [学习笔记] Java核心技术 卷一:基础知识 并发(七)
- Java核心技术 卷I 手记(一)
- java核心技术卷一第八章手敲
- 《java核心技术--卷一》equals方法
- JAVA核心技术卷一,泛型例子
- 【JAVA核心技术卷一】Inheritance 继承
- 如何在cmd命令行中查看、修改、删除与添加环境变量
- Stoneの8421码
- 阿里云rds mysql数据设置字符集为utf8mb4,支持ios的emoji
- ZooKeeper配置详解与集群搭建
- Web安全性测试之 ----XSS
- java核心技术卷一学习 2016.11.30
- android mtp usb
- sql里limit的用法
- Java正则表达式 Pattern和Matcher
- 百度富文本编辑器ueditor的使用、非空校验、引用预定义模板
- Mongodb写入安全机制--GetLastError
- CH9,p161,check(this.value)用法
- 进程间通信
- 神经网络之激活函数 dropout原理解读 BatchNormalization 代码实现