定義函數java
A. java中定義函數的技巧是什麼
java 面向對像,一般都說是對像里的方法,不叫函數。
定義函數的技巧? 如果是初學者不知道什麼做。那隨便找個來參照先寫著,後面就明白了。
如果是想問方法名,一般都是小寫字母開頭,後面就是寫些功能意思的拼音,或英文
B. java中如何定義一個泛型函數
泛型(Generic type 或者 generics)是對Java語言的類型系統的一種擴展,以支持創建可以按類型進行參數化的類。可以把類型參數看作是使用參數化類型時指定的類型的一個佔位符,就像方法的形式參數是運行時傳遞的值的佔位符一樣。
定義泛型方法語法格式如下:
定義泛型方法時,必須在返回值前邊加一個<T>,來聲明這是一個泛型方法,持有一個泛型T,然後才可以用泛型T作為方法的返回值。
Class<T>的作用就是指明泛型的具體類型,而Class<T>類型的變數c,可以用來創建泛型類的對象。
C. 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){}
}
D. java可以在main中定義函數嗎
不能…… 但是可以在函數中來直接實現一個介面,這樣就可以自定義一些函數了。
像下面這樣:
public static void main(String[] args){
Map<Object,Object> map = new Map<Object, Object>() {
@Override
public int size() {
return 0;
}
@Override
public boolean isEmpty() {
return false;
}
@Override
public boolean containsKey(Object key) {
return false;
}
@Override
public boolean containsValue(Object value) {
return false;
}
@Override
public Object get(Object key) {
return null;
}
@Override
public Object put(Object key, Object value) {
return null;
}
@Override
public Object remove(Object key) {
return null;
}
@Override
public void putAll(Map<?, ?> m) {
}
@Override
public void clear() {
}
@Override
public Set<Object> keySet() {
return null;
}
@Override
public Collection<Object> values() {
return null;
}
@Override
public Set<Entry<Object, Object>> entrySet() {
return null;
}
};
}
E. 請教Java怎樣自定義函數
java 與c類語言既是一脈相承,但又略有不同,java程序運行的基礎與c++,C#等面向對象語言都一樣,都是以類為基礎,而類中又以方法(在java中不叫函數)來完成需要解決的問題的,方法的運行就跟c類似了都需要一個主方法來運行它就是main()方法,下面是例子:
public class Test{
static int addition(int a, int b)
{
int sum;
sum=a+b;
return (sum);
}
public static void main(String args[])
{
int z;
z = addition(5,3);
System.out.println("Result = "+z);
}
}
F. 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");
}
G. 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的,都存在方法區。
H. java中函數的聲明和定義
Java中,我們應該知道最基本的就是定義變數和聲明變數了,那麼定義與聲明這兩者有沒有區別呢?具體的區別又是哪些呢?下面學習啦小編來告訴你定義與聲明的區別。
定義和聲明的定義區別
1、一種是需要建立存儲空間的。例如:int a 在聲明的時候就已經建立了存儲空間。
2、另一種是不需要建立存儲空間的。 例如:extern int a 其中變數a是在別的文件中定義的。
聲明是向編譯器介紹名字--標識符。它告訴編譯器「這個函數或變數在某處可找到,它的模樣象什麼」。
而定義是說:「在這里建立變數」或「在這里建立函數」。它為名字分配存儲空間。無論定義的是函數還是變數,編譯器都要為它們在定義點分配存儲空間。
對於變數,編譯器確定變數的大小,然後在內存中開辟空間來保存其數據,對於函數,編譯器會生成代碼,這些代碼最終也要佔用一定的內存。
總之就是:把建立空間的聲明成為「定義」,把不需要建立存儲空間的成為「聲明」。
基本類型變數的聲明和定義(初始化)是同時產生的;而對於對象來說,聲明和定義是分開的。
下面小編給大家舉個例子說明一下。
例如:類A
如果A a;就是一個聲明,告訴編譯器a是A類的一個對象變數,但是不進行初始化;
如果以後a=new A();這就是初始化,分配了空間。
需要注意的是我們聲明的最終目的是為了提前使用,即在定義之前使用,如果不需要提前使用就沒有單獨聲明的必要,變數是如此,函數也是如此,所以聲明不會分配存儲空間,只有定義時才會分配存儲空間。
用static來聲明一個變數的作用有二:
(1)對於局部變數用static聲明,則是為該變數分配的空間在整個程序的執行期內都始終存在。
(2)外部變數用static來聲明,則該變數的作用只限於本文件模塊。
定義和聲明的具體區別
所謂定義就是(編譯器)創建一個對象,為這個對象分配一塊內存,並給它取上一個名字,這個名字就是就是我們經常所說的變數名或對象名。
聲明有2重含義:
(1) 告訴編譯器,這個名字已經匹配到一塊內存上,下面的代碼用到變數或者對象是在別的地方定義的。聲明可以出現多次。
(2) 告訴編譯器,這個名字已經被預定了,別的地方再也不能用它來作為變數名或對象名。
定義和聲明最重要區別
定義創建對象並為這個對象分配了內存,聲明沒有分配內存。