文档章节

关于“构造器与方法”

遇见你
 遇见你
发布于 2016/02/03 22:33
字数 503
阅读 12
收藏 0
package com.java.bean;

import java.util.Date;
import java.util.GregorianCalendar;

public class Employee
{
    /*
     * 实例域(instance fields)
     */
    private String name;
    private double salary;
    private Date hireDay;
    
    /*功能:将实例化域初始话为所希望的状态
     *构造器(Constructor)——特殊的方法
     *1.构造器与类同名。
     *2.每个类可以有一个以上的构造器。
     *3.构造器可以有0个、1个或 多个参数。
     *4.构造器没有返回值。
     *5.构造器总是伴随着new操作一起调用。
     *
     *构造器与其他方法有一个重要的不同。构造器总是伴随着new操作符的执行被调用。
     *
     *但是不能对一个已经存在的对象调用构造器来达到重新设置实例域的目的。
     *
     *该构造器声明了局部变量name和salary。这些变量只能在构造器内部访问。这些 变量屏蔽了同名的实例域。
     *!!警告:不要在构造器中定义与实例域重名的局部变量。
     */
    public Employee(String n,double s,int year,int month,int day)
    {
        name = n;//不能写作 String name = n;
        salary = s;//不能写作double salary = s;
        GregorianCalendar calendar = new GregorianCalendar(year,month -1,day);
        hireDay = calendar.getTime();
    }
    
    //更改器、访问器(get、set方法)
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;//关键字this是隐式参数,即Employee对象。
    }

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public Date getHireDay() {
        return hireDay;
    }

    public void setHireDay(Date hireDay) {
        this.hireDay = hireDay;
    }
    
    /*方法(method)
     *方法用于操作对象以及存取它们的实例域。
     *raiseSalary方法有两个参数:隐式参数、显示参数
     *隐式参数:出现在方法名前的Employee对象。
     *显示参数:位于方法名后面括号中的数值。
     *在每一个方法中,关键字this表示隐式参数。
     *使用this关键字,可以将实例域与局部变量明显地区分开来(salary是实例域,raise是局部变量)
     */
    public void raiseSalary(double byPercent)
       {
          double raise = this.salary * byPercent / 100;
          this.salary += raise;//salary =salary+raise;
       }
}




© 著作权归作者所有

共有 人打赏支持
遇见你
粉丝 6
博文 28
码字总数 8271
作品 0
郑州
程序员
Effective Java 研磨之一----关于静态工厂方法的缺点--讨论

最近开始研读Effective Java,刚开始看到的就是关于使用静态工厂(不一定是涉及模式里面的静态工厂模式),里面提到了关于静态工厂的缺点: 静态工厂方法的主要缺点在于,类如果不含有公有的...

挖粪涂墙
2013/08/01
1K
5
ES6Map和Set结构学习笔记

关于Set ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 构造函数 Set 本身是一个构造函数,用来生成 Set 数据结构。 Set 函数可以接受一个数组(或者具...

tiancai啊呆
05/07
0
0
为什么Java实例化子类时会递归调用父类构造方法

下面的代码输出结果会是什么? 答案是 -1.0。 原因在于当实例化子类时会递归调用父类中的构造方法。而这又是为什么呢? 首先,这涉及到Java对象的生命周期。在Java中,对象的生命周期包括以下...

谢随安
2017/10/15
0
0
Spring IoC之Bean管理

Spring对Bean的管理包括Bean的初始化、Bean的注入、Bean的生命周期管理、Bean的作用域管理....等。Spring提供了三种实例化Bean的方式:使用类构造器、使用静态工厂类、使用工厂类;Spring通过...

Mr_YangFei
2016/03/29
69
0
人人都能懂的Vue源码系列(三)—resolveConstructorOptions函数

上篇文章介绍了Vue构造函数的部分实现,如果当前Vue实例不是组件,则执行mergeOptions方法。 关于mergeOptions方法,我们之后的博文会做详细介绍。今天主要来研究resolveConstructorOptions...

淼淼真人
05/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringCloud SpringBoot mybatis分布式Web应用的统一异常处理

我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况。Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用...

itcloud
17分钟前
0
0
c++ std::bind和std::function

定义于头文件 <functional> std::bind 函数绑定,https://zh.cppreference.com/w/cpp/utility/functional/bind // bind 用例#include <iostream>#include <functional> // 自定义的一......

SibylY
20分钟前
0
0
SecureCRT的安装与破解(过程很详细!!!)

SecureCRT的安装与破解(过程很详细!!!) SecureCRT的安装与破解(过程很详细!!!) 使用SecureCRT可以方便用户在windows环境下对linux主机进行管理,这里为大家讲一下SecureCRT的破解方...

DemonsI
24分钟前
0
0
介绍几款可用的web应用防火墙

目前有两款,基于软件和基于应用程序的web应用防火墙。基于软件的产品布置在Web服务器上,而基于应用程序的产品放置在Web服务器和互联网接口之间。两种类型的防火墙都会在数据传入和传出web...

上树的熊
31分钟前
1
0
用Visual Studio开发以太坊智能合约

区块链和以太坊 自从我熟悉区块链、以太坊和智能合约以来,一直失眠。 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议使用以太坊网站官方客户端应用程序(Ethereum Wallet)也...

geek12345
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部