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
原创粉丝点击