hi~ 我又来啦~
方法/函数
1. 理解和回顾方法的作用
1.1 方法概述
方法(函数):能够实现某种功能
想查阅更多的功能我们可以参看API文档。
变量可以存储单一的数据,而方法则可以存储功能代码段。
函数是指一段在一起的、可以做某一件事儿的程序。也叫做子程序、(OOP中)方法。
一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次。
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。要善于利用函数,以减少重复编写程序段的工作量。 – [节选自:百度百科]
-
main方法:程序的入口 如果没有此方法 则程序无法运行
public class HelloWorld{ public static void main(String[] args){ sout("Hello World!"); } }
-
random()方法:帮助我们生成一个[0.0,1.0)的随机数
double randDouble = Math.random();
-
nextInt()、nextDouble()、next()方法:用于帮助我们在控制台上输入对应的数据 帮你把值可以存到变量中。
String inputStr = input.next(); int inputInt = input.nextInt();
-
Arrays:
- toString(数组) 将数组转换为字符串
- sort(数组) 将数组进行升序排序
- equals(数组1,数组2) 将两个数组的元素进行比较 比较内容
- …
1.2 面向过程/函数/方法(函数式编程)-POP
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。
面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可
以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求
精,所以面向过程最重要的是模块化的思想方法。对比面向过程,面向对象的方法主要是把事物
给对象化,对象包括属性与行为。 当程序规模不是很大时 ,面向过程的方法还会体现出一种优
势。因为程序的流程很清楚,按着模块与函数的方法可以很好的组织。 比如拿学生早上起来这件
事说明面向过程,粗略的可以将过程拟为:
(1)起床 (2)穿衣 (3)洗脸刷牙 (4)去学校
而这 4 步就是一步一步地完成,它的顺序很重要,你只需要一个一个地实现就行了。
2. 掌握方法的基本语法
// 方法声明
[访问修饰符] 返回值类型 方法名([参数列表]){
// 方法体
[return 返回值;]
}
// 实现一个功能:输出10次好好学习 天天向上
public void printDayDayUp() {
for(int i = 0; i < 10; i++) {
sout("第"+(i+1)+"遍:好好学习 天天向上");
}
}
方法调用注意事项:
-
同一个类中:
-
如果调用者(方法)不是特殊的方法(没有static),那么可以直接以
要调用的方法名()
来进行调用。public void xx() { // 在同一个类中 如果不是特殊的方法(static) 那么可以直接调用 printDayDayUp(); }
-
如果调用者(方法)是特殊的方法(有static),那么需要先对此类进行对象创建,然后才能进行调用。
public static void main(String[] args) { // 调用方法 输出10遍好好学习天天向上 // main方法(static修饰)中调用其他的普通方法 Demo1 demo1 = new Demo1(); demo1.printDayDayUp(); }
-
-
不同类中(同包package):
-
不同类中进行方法调用,都需要先进行对应类的对象创建,然后才能调用此类中的方法。(与同类中static形式一致)
public class Demo2 { public static void main(String[] args) { Demo1 demo1 = new Demo1(); demo1.printDayDayUp(); } public void xx() { Demo1 demo1 = new Demo1(); demo1.printDayDayUp(); } }
-
3. 掌握方法的分类
-
无参无返方法:单纯的存储了一个功能 独立完成处理
访问修饰符 void 方法名(){ // 方法体 }
-
无参有返方法:存储了一个功能,并且将功能运行后的结果进行了返回(原因:调用者可能需要此结果进行处理)
访问修饰符 数据类型 方法名(){ // 方法体 return 返回值; }
public class Demo3 { public static void main(String[] args) { // 创建对象 Demo3 demo3 = new Demo3(); // 带返回值的方法需要按照返回值的类型接收一下此值 否则无法使用得到的结果 int randInt = demo3.genRandInt(); sout(randInt); // 或 sout(demo3.genRandInt()); } // 无参有返方法 // 实现一个功能:生成一个4位的随机整数 public int genRandInt() { // (int)(Math.random() * (max - min)) + min // [1000,10000) /*int randInt = (int)(Math.random() * (10000 - 1000)) + 1000; return randInt;*/ return (int)(Math.random() * (10000 - 1000)) + 1000; } }
-
有参无返方法:如果对一个独立处理的功能增加一些灵活性或者独立处理的功能需要一些额外因素才能进行处理。
访问修饰符 void 方法名(参数列表){ // 方法体 }
public class Demo4 { public static void main(String[] args) { Demo4 xx = new Demo4(); // xx.printDayDayUp(); // 调用方法时需要传递被称为【实参/实际参数】 /*int num = 10; xx.printDayDayUp(num);*/ // 只要保证传递的参数类型一致即可 // xx.printDayDayUp(10); // xx.printDayDayUp(20); // xx.printDayDayUp(30); } // 有参数的方法:将方法变得更加灵活 // 方法参数被我们称为【形参/形式参数】 用于在定义方法时可以先进行使用的 /*public void printDayDayUp(int count) { for (int i = 1; i <= count; i++) { System.out.println("第"+i+"遍:好好学习!天天向上!"); } }*/ // 经验:在软件开发中 一些功能可能由于时间而产生需求变化 // 新功能:100遍好好学习天天向上 // 遇到新需求,先考虑老的方法是否还可以重复使用 不要直接更改原有的实现 public void printDayDayUpIncr() { for(int i = 1; i <= 10; i++) { // 调用老方法 实现100遍 printDayDayUp(); } } // 老功能:10遍好好学习天天向上 public void printDayDayUp() { for (int i = 1; i <= 10; i++) { sout("第"+i+"遍:好好学习!天天向上!"); } } }
-
有参有返方法:方法内需要额外因素进行处理,并且处理完调用者需要结果进行使用。
访问修饰符 数据类型 方法名(参数列表){ // 方法体 return 返回值; }
public class Demo5 { public static void main(String[] args) { Demo5 demo5 = new Demo5(); String zhaZhi = demo5.zhaZhiJi("西瓜"); sout(zhaZhi); } // 模拟实现一个榨汁机功能:放入水果 得到对应的果汁 public String zhaZhiJi(String shuiGuo) { return shuiGuo+"汁"; } }
以上就是最近的课堂笔记 欢迎阅读!!!