Java 核心技术 卷I 基础知识 第4章 对象与类

4.1 面向对象程序设计概述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.1.1 类

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.1.2 对象

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.1.3 识别类

在这里插入图片描述在这里插入图片描述

4.1.4 类之间的关系

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.2 使用预定义类

4.2.1 对象与对象变量

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.2.2 Java类库中的LocalData类

在这里插入图片描述在这里插入图片描述

4.2.3 更改器方法与访问器方法

在这里插入图片描述在这里插入图片描述在这里插入图片描述

import java.time.*;

/**
 * @version 1.5 2015-05-08
 * @author Cay Horstmann
 */

public class CalendarTest
{
   public static void main(String[] args)
   {
      LocalDate date = LocalDate.now();
      int month = date.getMonthValue();
      int today = date.getDayOfMonth();

      date = date.minusDays(today - 1); // Set to start of month
      DayOfWeek weekday = date.getDayOfWeek();
      int value = weekday.getValue(); // 1 = Monday, ... 7 = Sunday

      System.out.println("Mon Tue Wed Thu Fri Sat Sun");
      for (int i = 1; i < value; i++)
         System.out.print("    ");
      while (date.getMonthValue() == month)
      {
         System.out.printf("%3d", date.getDayOfMonth());
         if (date.getDayOfMonth() == today)
            System.out.print("*");
         else
            System.out.print(" ");
         date = date.plusDays(1);
         if (date.getDayOfWeek().getValue() == 1) System.out.println();
      }
      if (date.getDayOfWeek().getValue() != 1) System.out.println();
   }
}

在这里插入图片描述
在这里插入图片描述

4.3 用户自定义类

4.3.1 Employee类

import java.time.*;

/**
 * This program tests the Employee class.
 * @version 1.12 2015-05-08
 * @author Cay Horstmann
 */
public class EmployeeTest
{
   public static void main(String[] args)
   {
      // fill the staff array with three Employee objects
      Employee[] staff = new Employee[3];

      staff[0] = new Employee("Carl Cracker", 75000, 1987, 12, 15);
      staff[1] = new Employee("Harry Hacker", 50000, 1989, 10, 1);
      staff[2] = new Employee("Tony Tester", 40000, 1990, 3, 15);

      // raise everyone's salary by 5%
      for (Employee e : staff)
         e.raiseSalary(5);

      // print out information about all Employee objects
      for (Employee e : staff)
         System.out.println("name=" + e.getName() + ",salary=" + e.getSalary() + ",hireDay="
               + e.getHireDay());
   }
}

class Employee
{
   private String name;
   private double salary;
   private LocalDate hireDay;

   public Employee(String n, double s, int year, int month, int day)
   {
      name = n;
      salary = s;
      hireDay = LocalDate.of(year, month, day);
   }

   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;
   }
}

在这里插入图片描述

4.3.2 多个源文件的使用

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

4.3.3 剖析Employee类

在这里插入图片描述

4.3.4 从构造器开始

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.3.5 隐式参数与显式参数

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.3.6 封装的优点

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.3.7 基于类的访问权限

在这里插入图片描述

4.3.8 私有方法

在这里插入图片描述在这里插入图片描述

4.3.9 final实例域

在这里插入图片描述

4.3静态域和静态方法

4.4.1 静态域

在这里插入图片描述
在这里插入图片描述

4.4.2 静态常量

在这里插入图片描述在这里插入图片描述

4.4.3 静态方法

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.4.4 工厂方法

在这里插入图片描述

4.4.5 main方法

在这里插入图片描述

4.5 方法参数

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.6 对象构造

4.6.1 重载

在这里插入图片描述在这里插入图片描述

4.6.2 默认域初始化

在这里插入图片描述在这里插入图片描述

4.6.3 无参数的构造器

在这里插入图片描述在这里插入图片描述

4.6.4 显式域初始化

在这里插入图片描述在这里插入图片描述

4.6.5 参数名

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.6.6 调用另一个构造器

在这里插入图片描述

4.6.7 初始化块

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

import java.util.*;

/**
 * This program demonstrates object construction.
 * @version 1.01 2004-02-19
 * @author Cay Horstmann
 */
public class ConstructorTest
{
   public static void main(String[] args)
   {
      // fill the staff array with three Employee objects
      Employee[] staff = new Employee[3];

      staff[0] = new Employee("Harry", 40000);
      staff[1] = new Employee(60000);
      staff[2] = new Employee();

      // print out information about all Employee objects
      for (Employee e : staff)
         System.out.println("name=" + e.getName() + ",id=" + e.getId() + ",salary="
               + e.getSalary());
   }
}

class Employee
{
   private static int nextId;

   private int id;
   private String name = ""; // instance field initialization
   private double salary;
  
   // static initialization block
   static
   {
      Random generator = new Random();
      // set nextId to a random number between 0 and 9999
      nextId = generator.nextInt(10000);
   }

   // object initialization block
   {
      id = nextId;
      nextId++;
   }

   // three overloaded constructors
   public Employee(String n, double s)
   {
      name = n;
      salary = s;
   }

   public Employee(double s)
   {
      // calls the Employee(String, double) constructor
      this("Employee #" + nextId, s);
   }

   // the default constructor
   public Employee()
   {
      // name initialized to ""--see above
      // salary not explicitly set--initialized to 0
      // id initialized in initialization block
   }

   public String getName()
   {
      return name;
   }

   public double getSalary()
   {
      return salary;
   }

   public int getId()
   {
      return id;
   }
}

在这里插入图片描述

对象析构与finalize方法

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.7 包

在这里插入图片描述

7.1 类的导入

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.7.2 静态导入

在这里插入图片描述

4.7.3 把类放入包中

在这里插入图片描述

4.7.4 包作用域

在这里插入图片描述在这里插入图片描述

4.8 类路径

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.8.1 设置类路径

在这里插入图片描述在这里插入图片描述

4.9 文档注释

4.9.1 注释的插入

在这里插入图片描述
在这里插入图片描述

4.9.2 类注释

在这里插入图片描述在这里插入图片描述

4.9.3 方法注释

在这里插入图片描述在这里插入图片描述

4.9.4 域注释

在这里插入图片描述

4.9.5 通用注释

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.9.6 包与概述注释

在这里插入图片描述

4.10 类设计技巧

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值