d4 方法

news/2024/11/16 22:53:31/
public class B {public static void f(int a,char c){System.out.println(a+" "+c);}public static void main(String[] args) {f(1,97);//报错,97为整型。自动转换顺序为 char byte short int long float double}
}	
package day3_1;
public class B {public static void main(String[] args) {char a=97;System.out.println(a);}
}
输出:a

一方法:

1类中方法的格式:

访问权限修饰符 其他修饰符 返回值类型 函数名称 (参数列表)

{

        方法体;

}

2一个完整的函数包含声明部分和实现部分

3作用域:

访问权限修饰符(这里只说两个):public,default[如果没有添加任何的访问权限修饰符,那么它就是默认权限default,注:default不需要显示的写出来]

public 修饰的变量、方法、类,可以在任何地方被调用

默认权限 修饰的变量、方法、类、只能在同包下被调用

    静态方法    能   直接调用    静态方法     和静态变量

    静态方法   不能 直接调用  非静态方法  和 非静态变量

非静态方法    能     直接调用   静态方法     和 静态变量

非静态方法   能  直接调用   静态方法         和   静态变量

静态方法或变量在同一内存空间

4可以在一个函数中调用一个函数,但不能在一个函数中声明一个函数。

5 int x=1,y=2;//实参

for(int a,int b); //形参

f(x,y);//调用函数,实参给形参赋值

6返回值为void的函数中可以写return;   用于结束整个方法。

return每次只能返回一个值给函数

7如果一个自定义的函数中有返回值,并且在方法中遇到了分支结构,则需要在每一个分支后面都需要出现一个return 

出现的问题:在使用单分支的时候,分支内部有return,这时编译还是不通过//解决办法:在单分支的外面再添加一个返回值,返回值随意,只要类型和返回值类型匹配就ok//单分支if(num1 > num2) {return num1;}//没有实际意义,作用只是为了匹配语法return 0;     

8函数参数表可以用...(三个点)表示数组,但该变量必须放在参数表最后。

例子:
 

package day3_1;public class A {static void f(char a,int...b){for(int i:b){System.out.print(i+"  ");}System.out.println();System.out.print(b.length);}public static void main(String[] args) {f('a',2,3,4,5,6,7);}}

输出:
2  3  4  5  6  7  
6

package day3_1;public class A {static void f(char a,String...b){for(String i:b){System.out.print(i+"  ");}System.out.println();System.out.println(b.length);System.out.println(b[0].length());}public static void main(String[] args) {f('a',"Hello ","World");}}

输出:

Hello   World  
2
6
 

9对于public static void main(String[] args){}

首先程序会自动调用main()方法,但是为什么是public和static?

public表示谁都可以调用,static表示main()在共享区,程序首先会在共享区照该方法,找到就会运行。
 

10方法的重载

方法的重载与方法的修饰符和返回值没有任何关系

    对于重载函数而言,具体调用的是哪个函数,取决于所传的参数

在同一个类中,如果满足以下的条件,则称为这几个方法之间彼此重载
        a.方法名相同
        b.参数不同【数量不同或者类型不同或者顺序不同】
        c.访问权限修饰符和返回值类型没有影响

class TextDemo04 
{public static void main(String[] args) {//对于重载函数而言,具体调用的是哪个函数,取决于所传的参数Check.show("10");Check.show("10",10);}
}
//实体类
/*
在同一个类中,如果满足以下的条件,则称为这几个方法之间彼此重载a.方法名相同b.参数不同【数量不同或者类型不同】c.访问权限修饰符和返回值类型没有影响
*/
class Check
{public static void show() {System.out.println("无参无返回值的show");}//1.改变参数public static void show(int a) {System.out.println("int的show");}public static void show(String a) {System.out.println("String的show");}public static void show(String a,int b) {System.out.println("String  int的show");}//2.改变返回值:返回值对方法的重载没有任何影响//只改变返回值类型,其他都不改变,则对于编译器而言,则认为是同一个方法/*public static String show() {System.out.println("String返回值的show");return "abc";}*///3.访问权限修饰符//只改变访问权限修饰符,其他都不改变,则对于编译器而言,则认为是同一个方法/*static void show() {System.out.println("show");}*/
}

11递归算法

在一个方法的方法体内调用该函数本身,称为函数的递归

方法递归包含了一种隐式的循环,会重复执行某段代码,但是这种重复不需要使用循环语句来进行控制

class  DiGuiUsageDemo01
{public static void main(String[] args) {/*斐波那契数列1,2,3,4,5,6, 7, 8, 9,10,11,.....1,1,2,3,5,8,13,21,34,55,89....分析:1.第一个位置和第二个位置上的数是固定的,都是12.第n个位置上的数 = 第n - 1个位置上的数 + 第n - 2个位置上的数fun(1)  = 1fun(2) = 1fun(3) = fun(2) + fun(1) = 1  + 1fun(4) = fun(3) + fun(2) = fun(2) + fun(1) +fun(2)fun(5) = fun(4) + fun(3) = fun(3) + fun(2) + fun(2) + fun(1) = fun(2) + fun(1) + fun(2) + fun(2) + fun(1)....fun(n) = fun(n - 1) + fun(n -2)*/int result1  = fun(10);System.out.println(result1);}//需求:报个数,获取在斐波那契数列中对应的数public static int fun(int n) {if(n == 1 || n == 2) return 1;else return  fun(n - 1)+fun(n -2);}}
}

 Thinking in JAVA:

import java.util.*;//Date位于java.util包中public class A {public static void main(String[] args){System.out.println(new Date());//创建一个Date类的对象,它可以自动转化成字符串}
}

输出:
Sun Jul 22 10:33:58 CST 2018

2.Math.round()//四舍五入

3Character类中的static isLowerCase(char或int)方法用于判断是否为小写字母,例子:

public static void main(String[] args){for(int i=0;i<=128;i++){if(Character.isLowerCase(i)){System.out.println((char)i);}}}
}

输出:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z

 

4foreach语法:一种新的更加简洁的for语法用于数组和容器,不必创建int变量去计数,foreach将自动产生每一项。

例子:遍历float数组

import java.util.*;public class Test {public static void main(String[] args) {Random rand=new Random(47);float[] f=new float[10];for(int i=0;i<=9;i++)f[i]=rand.nextFloat();for(float x:f)System.out.println(x);}
}

输出:
0.72711575
0.39982635
0.5309454
0.0534122
0.16020656
0.57799757
0.18847865
0.4170137
0.51660204
0.73734957

 

任何返回一个数组的方法都可以使用foreach,例如,String类有一个方法toCharArray(),它返回一个char数组,因此可以很容易地像下面这样迭代在字符串里面的所有字符。

public class Test {public static void main(String[] args) {for(char c:"An African Snallow".toCharArray()){System.out.print(c);}System.out.println();}
}

输出:
An African Snallow


http://www.ppmy.cn/news/287327.html

相关文章

D4

1&#xff0c;switch语句的表达式可以是byte吗?可以是long吗?可以是String吗? 答&#xff1a;Switch的表达式可以是byte,short,int,char , 可以是byte,不可以是long,JDK5后可以是枚举&#xff0c;JDK7以后可以是String 2&#xff0c;所谓的水仙花数是指一个三位数&#xff…

D4-数组

1.只有引用型操作&#xff0c;即只改变数组元素中的值&#xff0c;没有加工型操作&#xff0c;即不做插入删除操作 2.数组是多维结构&#xff0c;存储空间是一维结构 顺序映象方式&#xff1a; 1.行序为主序&#xff08;低下标优先&#xff09; 2.列序为主序&#xff08;高…

【rmzt:新网球王子动漫主题】

新网球王子动漫主题热门主题之家 系统&#xff1a;图标下载&#xff0c;Windows 7 大小&#xff1a;2.83 MB 主题简介 新网球王子是根据许斐刚的知名体育漫画改编的&#xff0c;网球王子们不但美型&#xff0c;而且他们更开创了打网球险些能够杀人的先河。而随著小不点越前龙马…

百度中文搜索风云榜每天对上亿次搜索进行分析,权威、全面、准确、精彩!...

百度中文搜索风云榜每天对上亿次搜索进行分析&#xff0c;权威、全面、准确、精彩&#xff01;凸现热点&#xff0c;纵览风云&#xff0c;挖掘萦绕在我们身边的新奇和惊喜&#xff0c;透过搜索&#xff0c;把握世界 2007风云榜行业报告&#xff0c;洞察行业趋势 上升最快Top50…

【分享rmzt:网球王子立海大动漫主题】

网球王子立海大动漫主题 系统&#xff1a;Win7主题下载&#xff0c;windows7 大小&#xff1a;3.28 MB 主题简介&#xff1a; 新网球王子是根据许斐刚的知名体育漫画改编的&#xff0c;网球王子们不但美型&#xff0c;而且他们更开创了打网球险些能够杀人的先河。而随著小不点…

刘润年度演讲2021:进化的力量(演讲全文)

‍‍ 周六通过直播看了刘润老师的演讲&#xff0c;不得不说&#xff0c;刘润老师是真的牛逼&#xff0c;五个小时的演讲&#xff0c;没喝过一口水&#xff0c;没去过一次厕所&#xff0c;就这份耐力就非常人。没人不辛苦&#xff0c;只是有人不说疼&#xff01; 以下是刘润老师…

win10 下 acdsee7 在普通账户下无法运行并崩溃的 BUG

win10 下 acdsee7 在普通账户下无法运行并崩溃的 BUG&#xff0c;而在管理员账户下却可以正常运行勉强可以使用的问题... 作为一款图片管理程序&#xff0c;虽然有一些 BUG&#xff0c;但却比它之后的版本要运行的快速而体积小巧的多。在全屏看图时&#xff0c;不会被之后版本中…