我的java学习笔记(三)

时间:2023-02-24 11:28:06

首先实现一个关于自定义类的小程序:

import java.util.*;
public class test001 {

public static void main(String[] args)
{
Employee[] pp = new Employee[3];
pp[0] = new Employee("boss",75000,1987,12,15);
pp[1] = new Employee("boyone",50000,1989,10,1);
pp[2] = new Employee("boytwo",4000,1990,3,15);

for(Employee person : pp)
person.raiseSalary(5);

for(Employee person : pp)
System.out.println("name = " + person.getName() + ", salary = " + person.getSalary() + ",hireDay =" + person.getHireDay());

}
}

class Employee
{
private String name;
private double salary;
private Date hireDay;
//构造函数
public Employee(String n,double s,int year,int month,int day)
{
name = n;//初始化行么
salary = s;//初始化薪水
GregorianCalendar calendar = new GregorianCalendar(year,month - 1,day);
hireDay = calendar.getTime();//初始化入职日期
}

public String getName()//获取姓名
{
return name;
}

public double getSalary()//获取薪水
{
return salary;
}

public Date getHireDay()//获取入职日期
{
return hireDay;
}

public void raiseSalary(double byPercent)//加薪函数
{
double raise = salary * byPercent/100;
}
}

1.在获得或设置实例域的值得时候,应该提供下面三项内容:

    a.一个私有数据域

    b.一个公有的域访问器方法.

    c.一个公有的域更改器方法

 这样的的好处是亮点:

            a.修改内部实行的时候只需要修改该方法。

            b.更好的实行错误检查


2.一个方法可以访问所属类的所有对象的私有数据。

例如:


class Employee {
public boolean equals(Employee other)
{
return name.equals(other.name);
}
}

boyone.equals(boss);

方法不但访问量boyone的私有域,还访问了boss的私有域。

3.私有方法不会被外部其他操作调用,可以将其删除,但是公有方法就不能将其删去,因为其他的代码很可能依赖它。

4.fianl实例域,构建是对象必须初始化的域。可修饰基本类型域或不可变类的域。

5.每个类只有一个static域,它属于类而不属于任何独立的对象,即使没有一个对象,静态域也存在。

6.System.out是静态常量 static final

7.静态方法是一种不能向对象实时操作的方法。静态方法不能访问实体域,因为它不能操作对象,但是它可以访问自身类中的静态域。当一个方法不需要访问对象状态,其所需参数都是通过显式参数提供或一个方法只需要访问类的静态域。

8.静态方法还用于工厂方法产生不同风格的格式对象。