javz笔记之:有趣的静态方法的使用
importjava.util.*;
publicclasswelcome{
publicstaticvoidmain(String[]args)
{
/*
*Test1:Methodscan"tmodifynumericparameters
*/
System.out.println("TestingtripleValue:");
doublepercent=10;
System.out.println("Before:percent="+percent);
percent=tripleValue(percent);
System.out.println("After:percent="+percent); //这里输出为30了!正常的结果
/*
*Test2:Methodscanchangethestateofobjectparameters
*/
System.out.println("\nTestingtripleSalary:");
Employeeharry=newEmployee("Harry",50000);
System.out.println("Before:salary="+harry.getSalary());
tripleSalary(harry);
System.out.println("After:salary="+harry.getSalary());
/*
*Test3:Methodscan"tattachnewobjectstoobjectparameters
*/
System.out.println("\nTestingswap:");
Employeea=newEmployee("Alice",70000);
Employeeb=newEmployee("Bob",60000);
System.out.println("Before:a ="+a.getName());
System.out.println("Before:b ="+b.getName());
swap(a,b);
System.out.println("After:a="+a.getName());
System.out.println("After:b="+b.getName());
}
publicstaticdoubletripleValue(doublex)//doesn"twork
{
returnx=3*x;
//System.out.println("Endofmethod:x="+x);
}
publicstaticvoidtripleSalary(Employeex)//works
{
x.raiseSalary(200);
System.out.println("Endofmethod:salary="+x.getSalary());
}
publicstaticvoidswap(Employeex,Employeey)
{
Employeetemp=x;
x=y;
y=temp;
System.out.println("Endofmethod:x="+x.getName());
System.out.println("Endofmethod:y="+y.getName());
}
}
classEmployee//simplifiedEmployeeclass
{
publicEmployee(Stringn,doubles)
{
name=n;
salary=s;
}
publicStringgetName()
{
returnname;
}
publicdoublegetSalary()
{
returnsalary;
}
publicvoidraiseSalary(doublebyPercent)
{
doubleraise=salary*byPercent/100;
salary+=raise;
}
privateStringname;
privatedoublesalary;
}
如果是以下代码:System.out.println("After:percent="+percent); //这里输出为10了!因为静态方法达不成你要的效果
这是因为静态方法不能对对象产生效果,和静态域一样,
/**
*ThisprogramdemonstratesparameterpassinginJava.
*@version1.002000-01-27
*@authorCayHorstmann
*/
publicclassParamTest
{
publicstaticvoidmain(String[]args)
{
/*
*Test1:Methodscan"tmodifynumericparameters
*/
System.out.println("TestingtripleValue:");
doublepercent=10;
System.out.println("Before:percent="+percent);
tripleValue(percent);
System.out.println("After:percent="+percent);
/*
*Test2:Methodscanchangethestateofobjectparameters
*/
System.out.println("\nTestingtripleSalary:");
Employeeharry=newEmployee("Harry",50000);
System.out.println("Before:salary="+harry.getSalary());
tripleSalary(harry);
System.out.println("After:salary="+harry.getSalary());
/*
*Test3:Methodscan"tattachnewobjectstoobjectparameters
*/
System.out.println("\nTestingswap:");
Employeea=newEmployee("Alice",70000);
Employeeb=newEmployee("Bob",60000);
System.out.println("Before:a="+a.getName());
System.out.println("Before:b="+b.getName());
swap(a,b);
System.out.println("After:a="+a.getName());
System.out.println("After:b="+b.getName());
}
publicstaticvoidtripleValue(doublex)//doesn"twork
{
x=3*x;
System.out.println("Endofmethod:x="+x);
}
publicstaticvoidtripleSalary(Employeex)//works
{
x.raiseSalary(200);
System.out.println("Endofmethod:salary="+x.getSalary());
}
publicstaticvoidswap(Employeex,Employeey)
{
Employeetemp=x;
x=y;
y=temp;
System.out.println("Endofmethod:x="+x.getName());
System.out.println("Endofmethod:y="+y.getName());
}
}
classEmployee//simplifiedEmployeeclass
{
publicEmployee(Stringn,doubles)
{
name=n;
salary=s;
}
publicStringgetName()
{
returnname;
}
publicdoublegetSalary()
{
returnsalary;
}
publicvoidraiseSalary(doublebyPercent)
{
doubleraise=salary*byPercent/100;
salary+=raise;
}
privateStringname;
privatedoublesalary;
}
相关文章
- 尚硅谷Vue课程P30-P35笔记(后台回复 vue 可获得更多笔记!)
- Spring学习笔记(三十二)——SpringBoot中cache缓存的介绍和使用
- Spring 中 jdbcTemplate 的使用 | Spring学习笔记
- 《深度工作》学习笔记(5)
- GitBook安装使用笔记(一)安装部署
- GitHub暴涨6W下载!这份互联网寒冬自保笔记终于开源了,干货满满
- 贝塞尔方程与贝塞尔函数学习笔记
- idapython使用笔记
- 【RT-Thread学习笔记】如何使用scons 命令中buildlib的生成静态库?
- C++ 20 学习笔记1 --From BiliBili.com
- Canvas学习笔记,记录使用过程中遇到的一些问题
- Vue3学习笔记Day10 如何使用Vuex进行数据跨组件交互?
- 前端动画实现 - 笔记
- XYLibrary笔记九:XNewWork使用笔记
- Java学习笔记 基础知识(封装)
- BOM、DOM学习笔记——JavaScript详解编程语言
- java学习笔记(入门篇)_java程序helloWorld
- ASP.NET笔记之Session、http、web开发原则、xss漏洞的详细介绍
- MySQL笔记之函数查询的使用
- DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接.
- CI框架学习笔记(二)-入口文件index.php