本文目錄一覽:
Java中如何調用函數和自定義函數
調用函數
System.out.println(“hello world”);
println即為函數,out為是輸出對象,System為java系統類。
java是面向對象語言,調用非靜態方法時,需要創建一個類的對象才能調用方法;
調用靜態方法時,直接用類名調用即可。
import java.util.Array; //調用其他包下的方法時需要導包
Array.sort(arr); //Array是工具類,方法都為靜態方法
定義函數
修飾符 返回值類型 方法名(參數類型 參數名){
…
方法體
…
return 返回值
;}
方法包含一個方法頭和一個方法體。下面是一個方法的所有部分:
修飾符:修飾符,這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪問類型。
返回值類型 :方法可能會返回值。returnValueType 是方法返回值的數據類型。有些方法執行所需的操作,但沒有返回值。在這種情況下,returnValueType 是關鍵字void。
方法名:是方法的實際名稱。方法名和參數表共同構成方法簽名。
參數類型:參數像是一個佔位符。當方法被調用時,傳遞值給參數。這個值被稱為實參或變數。參數列表是指方法的參數類型、順序和參數的個數。參數是可選的,方法可以不包含任何參數。
方法體:方法體包含具體的語句,定義該方法的功能。
注意: 在一些其它語言中方法指過程和函數。一個返回非void類型返回值的方法稱為函數;一個返回void類型返回值的方法叫做過程。
拓展內容
java
Java源程序(.java文件)——java位元組碼文件(.class文件)——由解釋執行器(java.exe)將位元組碼文件載入到java虛擬機(jvm)——位元組碼文件(.class)就會在java虛擬機中執行。
Java的基本包
java.lang 其中包含有:
介面:Comparable、Cloneable、Runable等
類:八個基本數據類型封裝類、Math、Runtime、Object、String、StringBuffer、Thread、Exception等
java怎樣在主函數里定義函數
main函數是一個程序的入口,也是出口,main函數其實就是類里的一個方法,方法只能在類里聲明了,所以maion函數必須聲明在一個類里,一個程序里只有一個main函數,因為類與類之間是相與調用的。一個程序從開始運行就會先找main函數,然後再一步一步的執行,如果有多個main那麼程序就會報錯,因為他不知道該從那個門口(main函數)進,然而類為什麼可以有多個呢,你還記的JAVA的三大基本特徵么,即封裝,繼承,多態。而封裝就是我們所說的類,他是把所有相同的屬性,方法歸納到一起,即組成一個類。這樣給你打個比方吧
main函數所在的一個類就相當於一個城市,而main函數就是城市的一個入口,並且只有一個入口,也可是出口,而城市中又有許多小區,我們叫他為類吧,而小區里的房子又基本相同,這也就驗證了我們把同一類物品歸為一類,即封裝在一個類里,而每個小區又不同,這又驗證了每一個類的實現功能 是不同的,而類與類這間的調用則是用NEW關鍵字,這個你應該會吧,繼承,多態我就不用說
主函數的一般寫法如下:
public static void main(String[] args){…}
下面分別解釋這些關鍵字的作用:
(1)public關鍵字,這個好理解,聲明主函數為public就是告訴其他的類可以訪問這個函數。
(2)static關鍵字,告知編譯器main函數是一個靜態函數。也就是說main函數中的代碼是存儲在靜態存儲區的,即當定義了類以後這段代碼就已經存在了。如果main()方法沒有使用static修飾符,那麼編譯不會出錯,但是如果你試圖執行該程序將會報錯,提示main()方法不存在。因為包含main()的類並沒有實例化(即沒有這個類的對象),所以其main()方法也不會存。而使用static修飾符則表示該方法是靜態的,不需要實例化即可使用。
(3)void關鍵字表明main()的返回值是無類型。
**(4)參數String[] args,這是本文的重點。
第一、程序使用者可以在命令行狀態下向某個類傳遞參數。看下面的例子:
public class ArgsDemo {
public static void main(String[] args) {
String str = new String();
for (int i = 0; i args.length; i++) {
System.out.println(args[i]);
str += args[i];
}
System.out.println(str);
}
}
使用javac ArgsDemo.java命令生成ArgsDemo.class文件;然後使用「java ArgsDemo 參數一 參數二 參數三 …」的格式向ArgsDemo類傳遞參數。該示常式序將首先輸出參數,然後輸出所有參數的和。比如java ArgsDemo a b c,將得到這樣的輸出:
a
b
c
abc
需要注意的是,如果這裡的循環條件不是i 5,則在命令行中輸入的參數必須是5個,否則將會報錯,錯誤類型為:
Exception in thread 「main」 java.lang.ArrayIndexOutOfBoundException:3
at ArgsDemo.main(ArgsDemo.java:5)
第二、可以在另一個類中向包含main()的類傳遞參數,如下例:
public class A {
public static void main(String[] args)
{
for(int i=0;i
System.out.println(args[i]);
}
}
public class B {
public static void main(String[] args)
{
c = new A();
String[] b = {“111″,”222″,”333”};
c.main(b);
}
}
首先定義一個class A,在A中定義一個main()函數,在該函數中輸出參數args。然後定義一個classB,在B中初始化一個A的實例c,然後向c傳遞參數,並且調用c的main方法列印出傳入的參數值。輸出結果如下:
111
222
333
由於main()函數是靜態函數,即不需要實例化也能使用,所以B使用下面的寫法也能完成相同的功能:
public class B {
public static void main(String[] args)
{
//A c = new A();
String[] b = {“111″,”222″,”333”};
A.main(b);
}
}
總結:參數args的主要作用是為程序使用者在命令行狀態下與程序交互提供了一種手段。此外在其他類中直接使用main()函數,並傳遞參數也是可行的,雖然這種方法不太常用,但畢竟為我們提供了一種選擇。
(以上觀點均系個人理解,不準確的地方歡迎批評指正。實常式序均調試通過)
對static的理解還有問題。main方法的代碼是存在方法區的。方法不管是否為static的,都存在方法區。
JAVA中定義了函數,有返回值,怎麼調用?
你可以這樣理解add(a,b)中向ab傳值,在方法add中處理ab 然後得出一個數,例如sum = a+b;,然後這個方法就返回這個數,當然這個數的類型是你定義的。然後在某個地方你要用到這個sum,你就可以這樣用 Sums = add(a,b);可以這樣用,其實有返回類型的方法你可以認為它就是一個值來用就行了。\x0d\x0a\x0d\x0apublic static void main(String args[]){\x0d\x0a System.out.println(“add(a,b)當a=1,b=2的時候,a+b的值為”+add(1,2));//有返回類型的方法可以直接看成是一個值\x0d\x0a\x0d\x0a}
Java寫一個自定義函數
為了幫助網友解決「java創建自定義函數」相關的問題,中國學網通過互聯網對「java創建自定義函數」相關的解決方案進行了整理,用戶詳細問題包括:; /.println(arrs.這裡是返回最大值
return 8;;/我想自定義getmax函數的話怎麼做
}
public int getMax(){
/.getMax);/,7.outpublic class test{
public static void main(String[] args){
int arrs[] =new int[]{1;
}
}
我想java實現javascript 裡面 prototype 這樣的原型對象,5.,5;
System,1},8,4,具體解決方案如下:
解決方案1:
println(getMax(arrs)); a) a = arrs[i].length; arrs; i
}
public static int getMax(int[] arrs){
int a = 0;
for (int i = 0,7.outpublic class TEST{
public static void main(String[] args){
int[] arrs =new int[]{1;
}
return a,5; i++) {
if(arrs[i] ,5;
System,1},8,4
解決方案2:
謝謝。。我能不能 .length() 這樣的函數自定義創建呢?
解決方案3:
jdk提供一些常用類跟方法方便我們寫程序,自己寫也一樣的
arrs.length Array裡面封裝好的實例屬性
解決方案4:
謝謝!
解決方案5:
7,5;
}
public static void main(String[] args){
int arrs[] =new int[]{1:
public static int getMax(int[] arrs){
/.這裡是返回最大值
return 8;/:
public static void main(String[] args){
int arrs[] =new int[]{1..;
System,4,4; ///,1}.out;
System; /,5,5,5;.,7,8.;我想自定義getmax函數的話怎麼做
}
改為public int getMax(){
/,1}.out;;/.getMax),8.這裡是返回最大值
return 8;
}
改為.println(getMax(arrs)).println(arrs
解決方案6:
方法沒有修飾符的例子:
String getName(){ //無修飾符,無參數,有String類型返回值
return “張3”;
}
void getName(){ //無修飾符,無參數,無返回值
system.out.println(“張3”);
}
int add(int a,int b){ //無修飾符,有2個整型參數,有整型返回值
return a+b;
}
方法有2種修飾符
1)有public、protected、private三種顯示的訪問控制修飾符
2)還可以有static 、 final 、abstract 這三個修飾符
方法含有修飾符的例子:
public String getName(){ //public修飾符(公有方法),無參數,有String類型返回值
return “張3”;
}
private void getName(){ //無修飾符(私有方法),無參數,無返回值
system.out.println(“張3”);
}
Java構造函數裡面可以定義函數嗎
可以,因為每個類都有一個無參數的默認構造函數
比如
class
c{}
則c
c=new
c();是可以執行的
因為其中有個默認的無參數構造函數
但是如果是下面的情況則不能這樣用
比如
class
c{
public
c(int
i){}
}
這樣c
c=new
c();是錯誤的,因為已經有了構造函數,則不能再使用默認構造函數了..所謂默認構造函數,就是在默認狀態下(無構造函數)可以被使用的.
當然你也可以如果在上面的情況下,你可以寫出無參構造函數.(當然這就不是默認構造函數了)
class
c{
public
c(){}
public
c(int
i){}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/251898.html