JavaSE对象
2021-04-30 19:26
                         标签:相同   href   ISE   final   set   hda   div   关键字   HERE    要想使用对象,就必须首先构造对象,并指定其初始状态。然后,对对象应用方法。在Java 程序设计语言中,使用构造器(constructor)构造新实例。构造器是一种特殊的方法,用来构造并初始化对象。 在 Java 中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用,new操作符的返回值也是一个引用。 例如:以下示例。raiseSalary方法有两个参数。第一个参数称为隐式 (implicit) 参数,是出现在方法名前的 Employee 类对象 jason。第二个参数位于方法名后面括号中的数值,这是一个显式 (explicit ) 参数 例如: 可能希望将一个计算代码划分成若干个独立的辅助方法。通常, 这些辅助方法不应该成为公有接口的一部分,这是由于它们往往与当前的实现机制非常紧密,或者需要一个特别的协议以及一个特别的调用次序。最好将这样的方法设计为private的。在Java中,为了实现一个私有的方法, 只需将关键字public 改为private 即可 例如: 假定需要给每一个雇员赋予唯一的标识码。这里给Employee类添加一个实例域id 和一个静态域nextld 即 如果有1000个Employee类的对象,则有1000个实例域id。但是,只有一个静态域nextld。即使没有一个雇员对象,静态域nextId也存在。它属于类,而不属于任何独立的对象。 例如: 在Math类中定义了一个静态常量,在程序中,可以采用Math.PI的形式获得这个常量 例如: Employee类的静态方法不能访问Id实例域,因为它不能操作对象。但是静态方法可以访问自身类中的静态域 待续 如果在构造器中没有显式地给域赋予初值,那么就会被自动地赋为默认值: 数值为0、布尔值为false、对象引用为null 例如:Employee 类的无参数构造函数 关键字this 引用方法的隐式参数。然而,这个关键字还有另外一个含义,如果构造器的第一个语句形如this(...),这个构造器将调用同一个类的另一个构造器 例如: 无论使用哪个构造器构造对象,id域都在对象初始化块中被初始化。首先运行初始化块,然后才运行构造器的主体部分 JavaSE对象 标签:相同   href   ISE   final   set   hda   div   关键字   HERE    原文地址:https://www.cnblogs.com/code-duck/p/13226844.html
对象与对象变量
new Date()
Date now = new Date();
// 对 对象进行调用
String time = now.toString();
Date time; // now doesn‘t refer to any object
String s = time.toString(); // 编译错误
// 使用构造器创建对象变量
now = new Date();
// 或者让该变量引用其他对象变量
now = time;
Date birthday = new Date();
隐式参数和显示参数
public class Employee{
    
    int salary;
    
    ...
    
    public void raiseSalary(double byPercent)
        {
            double raise = salary * byPercent / 100;
            salary += raise;
        }
}
   
...
Employee jason = new Employee();
jason.raiseSalary(5)
基于类的访问权限
class Employee
{
    public boolean equals(Employee other)
    {
        return name.equals(other.name) ;
    }
}
私有方法
final实例域
class Employee
{
    private final String name;
    ...
}
静态域与静态方法
静态域
class Employee
{
    private static int nextId = 1;
    
    private int id;
    ...
}
静态常量
public class Math
{
    public static final double PI = 3.14159265358979323846;
}
静态方法
public static int getNextId()
{
    return nextId; // returns static field
    
}
...
int n = Employee.getNextId(); //可以通类名调用上面的方法
main 方法
public class Application
{
    public static void main(String[] args)
    {
        // construct objects here
    }
}
对象构造
重载
默认域初始化
无参数的构造器
public Employee()
{
    name = "";
    salary = 0;
    hireDay = LocalDate.now();
}
调用另一个构造器
public Employee(double s)
{
    // calls Employee(String, double)
    this("Employee #" + nextId, s);
    nextld++;
}
初始化块
class Employee
{
    private static int nextId;
    private int id;
    private String name;
    private double salary;
    
    // object initialization block
    {
        id = nextId;
        nextId++;
    }
    
    public Employee(String n, double s)
    {
    
        name = n;
        salary = s;
        
    }
    
    public Employee()
    {
    name = "";
    salary = 0;
    }
    ...
}