java===java基础学习(7)---用户自定义类
package testbotoo;
import java.util.*; public class EmployeeTest
{
public static void main(String[] args)
{
Employee[] staff = new Employee[3];
staff[0] = new Employee("liming", 75000, 1987, 12, 15);
staff[1] = new Employee("xiaoming", 70000, 1999, 12, 12);
staff[2] = new Employee("xiaoli", 20000, 2001, 12, 23); for (Employee e :staff) // e---Element (在集合中使用,因为集合中存放的是元素),这里和python中的i一样,for i in list: i.raiseSalary(5)
e.raiseSalary(5); 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 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 byPrecent){
double raise = salary * byPrecent / 100;
salary += raise;
} }
Employee类包含一个构造器和4个方法:
public Employee(String n, double s, int year, int month, int day)
public String getName()
public double getSalary()
public Date getHireDay()
public void raiseSalary( double byPrecent)
这个类的所有方法都被标记为public, 关键字public意味着任何类的任何方法都可以调用这些个方法(共有四种访问级别)
实例域,强烈建议实例域标记为private:
private String name;
private double salary;
private Date hireDay;
构造器,构造器和类同名,在构造Employee类的对象时,构造器会运行,以便将实例域初始化为所希望的状态!
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();
}
- 构造器与类同名
- 每个类可以有一个以上的构造器
- 构造器可以有0个,1个或者多个参数
- 构造器没有返回值
- 构造器总是伴随着new操作一起调用
隐式参数与显示参数:
raiseSalary 方法有两个参数,第一个为隐式参数,出现在方法名前的Employee类对象。第二个参数位于方法名后面括号中的数值,这是一个显式参数
显示参数明显的列在方法声明中的,例如double byPrecent
在每一个方法中,关键字this表示隐式参数。如果需要,可以使用这样的方式编写:
public void raiseSalary(double byPrecent){
double raise = salary * byPrecent / 100;
salary += raise;
}
封装的优点:
getName(), getSalary(), getHireDay()
都是典型的访问器方法,由于只返回实例域值,因此又称域访问器。
java===java基础学习(7)---用户自定义类的更多相关文章
- Java【基础学习】之暴力求素数【用数组返回】
Java[基础学习]之暴力求素数[用数组返回] */ import java.util.*; public class Main{ public static void main(String[] a ...
- Yaf零基础学习总结5-Yaf类的自动加载
Yaf零基础学习总结5-Yaf类的自动加载 框架的一个重要功能就是类的自动加载了,在第一个demo的时候我们就约定自己的项目的目录结构,框架就基于这个目录结构来自动加载需要的类文件. Yaf在自启动的 ...
- JAVA多线程基础学习一:基础知识
我们知道多线程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧. 一.线程基本概念 1 线程:进程中负责程序执行的执行单元(执行 ...
- Java语法基础学习DaySeventeen(多线程续)
一.线程的特点 1.线程的分类 java中的线程分为两类:守护线程和用户线程.唯一的区别是判断JVM何时离开. 守护线程是用来服务用户线程的,通过在start()方法前调用Thread.setDaem ...
- Java之基础学习(数据类型、运算符、分支语句和循环语句)
在工作用得比较多的是shell和python编程,对于java以前也学习过,使用很少,这次借朋友推荐的java视频教程来温习下. 也是因为现在很多开源测试工具使用java编写的,学习一下更有助于测试工 ...
- Java语法基础学习DayEighteen(常用类)
一.String类 1.特点 String代表不可变的字符序列,底层用char[]存放. String是final的. 2.内存解析 3.常用方法 int length() char charAt(i ...
- java基础学习总结——Object类
一.Object类介绍
- Java语法基础学习DayThirteen(枚举类和注解)
一.枚举类 1.概述:即一个类中只能有有限个对象,若只有一个对象,则可以作为单例模式的一种实现. 2.自定义枚举类(JDK1.5以前这么做) //枚举类 class Season{ //1.提供类的属 ...
- Java入门基础学习,成为一个Java程序员的必备知识
引言 众所周知,Java是一种面向对象的编程语言.您可以在Windows操作系统上编写Java源代码,而在Linux操作系统上运行编译后的字节码,而无需修改源代码. 数据类型 Java 有 2 种数据 ...
- Java语法基础学习DaySeven
---恢复内容开始--- 一.包装类——Wrapper 1.定义:针对八种基本数据类型定义相应的引用类型——包装类(封装类) boolean——Boolean byte——Byte ...
随机推荐
- Android Shimmer 发光微光动画
这是Facebook提供的一个类库(题外话http://code.facebook.com,这里有很多好玩有趣有用的Facebook开源的类库) 这么炫酷的发光动画效果,想必很多Android码农都会 ...
- BZOJ2428:[HAOI2006]均分数据——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=2428 https://www.luogu.org/problemnew/show/P2503 已知 ...
- BZOJ Lydsy5月月赛 ADG题解
题目链接 BZOJ5月月赛 题解 好弱啊QAQ只写出三题 A 判断多干个数乘积是否是某个数的倍数有很多方法,比较常用的是取模,但这里并不适用,因为模数不定 会发现数都比较小,所以我们可以考虑分解质因子 ...
- Linux实验一
一.Linux 简介 1.Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS , 我们的 Linux 也就是系统调用和内核那两层,当然直观的来看,我们使 ...
- lighttpd - 配置文件
转载其他网站,收藏查看! 配置文件lighttpd.conf参数详细说明的链接和选译 发表于 2010年12月22日 http://redmine.lighttpd.net/projects/ligh ...
- ContestHunter暑假欢乐赛 SRM 03
你们也没人提醒我有atcoderQAQ... A题曼哈顿距离=欧拉距离就是在同一行或者同一列,记录下i,j出现过的次数,减去就行,直接map过. B题一开始拿衣服了,一直以为排序和不排序答案是一个样的 ...
- ACE线程管理机制-并发控制(4)
转载于:http://www.cnblogs.com/TianFang/archive/2006/12/04/581857.html ACE Synchronization类 这一类并发控制对象一般也 ...
- [codeforces/edu30]总结(E)
链接:http://codeforces.com/contest/873/ A题: 贪心,把最大的k个数变成x即可. B题: 从左向右枚举右端点,维护balance的最长长度.任意一个子串可以看做两个 ...
- 洛谷:P2292 [HNOI2004]L语言(DP+Trie树)
P2292 [HNOI2004]L语言 题目链接:https://www.luogu.org/problemnew/show/P2292 题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有 ...
- hadoop设置公平队列
http://hadoop.apache.org/docs/r1.2.1/fair_scheduler.html fair-scheduler.xml文档 <?xml version=" ...