java對象的方法
Ⅰ java中創建一個對象有哪幾種方法,有什麼區別
以string類為例
第一種:
string
str
=
new
string();
第二種:
string
str
=
class.forname(string).newinstance()
兩種方法創建的對象實體沒有任何區別,如果硬說有區別的話,那就是第一種直接調用了本類的構造函數,如果本類有多個構造函數重載的話,可以添加參數。而第二種是調用這個類的默認構造函數,即不帶任何參數的。
第一種方法是最常用,最普遍的用法。
第二種方法叫做工廠模式,是一種較安全的方法。
Ⅱ java面向對象如何創建對象
java作為互聯網編程中使用范圍最廣泛的編程語言之一,我們有許多的知識是需要掌握學習的,今天java課程培訓機構http://www.kmbdqn.cn/就給大家分析講解一下java面向對象的編程方法有哪些。
常用的創建對象的模式有以下幾種:
一.工廠模式
工廠模式抽象了具體對象的過程,用函數來封裝以特ing介面創建對象的細節。
如下:
functioncreateAnimal(name,age){
varo=newObject();
o.name=name;
o.age=age;
o.sayName=function(){
alert(this.name);
}
returno;
}
varcat=createAnimal("cat",12);
vardog=createAnimal("dog",3);
工廠模式雖然解決了創建多個相似兌現過的問題,但是卻沒有解決對象識別的問題。
二.構造函數模式
構造函數模式可以創建特定類型的對象。
functionAnimal(name,age){
this.name=name;
this.age=age;
this.sayName=function(){
alert(this.name);
}
}
varcat=newAnimal("cat",12);
vardog=newAnimal("dog",3);
可以使用對象的constructor屬性或instanceof操作符來標識對象類型。
cat.constructor==Animal//true
catinstanceofAnimal//true
三.原型模式
每個函數都有一個prototype(原型)屬性。這個屬性是一個指針,指向一個對象,而這個對象的用途是包含可以由特定類型的所有實例共享的屬性和方法。
使用原型對象的好處是,可以讓所有對象實例共享它所包含的屬性和方法。
functionAnimal(){}
Animal.prototype.name="animal";
Animal.prototype.age=1;
Animal.prototype.sayName=function(){
alert(this.name);
}
vartest1=newAnimal();
test1.sayName();//"animal"
vartest2=newAnimal();
test2.sayName();//"animal"
alert(test1.sayName===test2.sayName);//true
或者:
functionAnimal(){}
Animal.prototype={
constructor:Animal,
name:"animal",
age:1,
sayName:function(){
alert(this.name);
}
};
原型中所有屬性是被很多實例共享的,通過在實例上添加一個同名屬性,可以隱藏原型中的對應屬性。但是,對於包含引用類型值的屬性來說,問題就比較明顯了。
Ⅲ Java對象怎麼調用
java對象中,除了基本類型,其他對象傳遞都是地址傳遞,雖然java取消了指針的設定,但是其內部還是使用指針操作的,定義一個對象就相當於定義了一個對象類型的指針,這個指針的值為null,如果不進行初始化的話自然會報空指針異常,也就是NullPointerException。即使是基本類型,如果不初始化直接調用的話一樣會報異常的。
上面的main方法中,map對象只是被創建並沒有初始化,只是在前面創建了一個Map類的指針但並沒有告訴系統具體指向,也就是map的值為null。
如以下方式:
static Map map;
public static void main(String[] args)
{
map=new Map();
map.seach();
}
程序就可以正常運行。
這兩種創建對象的方法都是可以的。第一種在方法外創建就是作為一個類的屬性,這個時候這個對象的生存周期是相當長的,你可以在一個方法中初始化後在其他方法中繼續調用,其他方法對其造成的修改會都會影響到下一次調用的結果。甚至可以在其他類中調用這個變數。當然如果調用到的是沒有初始化的對象一樣會報空指針。
後一種方式是在方法中創建對象進行操作,這時候這個對象的生存周期只限制於這個方法。每次調用這個方法的時候都會重新創建一個這樣的對象。想將這個對象拿出去只有在創建後用set方法或者是使用return 返回。
例如:
Map map=new Map();
map.seach();
//假設OtherObj對象有setMap方法,使用set方法取出map對象
OtherObj.setMap(map);
或者就寫成:
public Map getMap(){
Map map = new Map();
return map;
}
此外,static標記表示這個對象是類共有的,調用的時候甚至不需要創建你這個類的對象直接通過類名就可以調用出來。例如jdk中的java.awt.Color類裡面可以直接取出一些特定的顏色,只需要調用Color.RED等方法即可。不需要另外創建Color對象
Ⅳ JAVA創建對象有哪幾種方式
JAVA創建對象的四種方式:
有4種顯式地創建對象的方式:
1.用new語句創建對象,這是最常用的創建對象的方式。
2.運用反射手段,調用Java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
3.調用對象的clone()方法。
4.運用反序列化手段,調用java.io.ObjectInputStream對象的readObject()方法.
下面演示了用前面3種方式創建對象的過程。
4.當Java虛擬機載入一個類時,會隱含地創建描述這個類的Class實例.
Ⅳ java中Request對象的主要方法有哪些
答:setAttribute(Stringname,Object):設置名字為name的request的參數值
getAttribute(Stringname):返回由name指定的屬性值
getAttributeNames():返回request對象所有屬性的名字集合,結果是一個枚舉的實例
getCookies():返回客戶端的所有Cookie對象,結果是一個Cookie數組
getCharacterEncoding():返回請求中的字元編碼方式
getContentLength():返回請求的Body的長度
getHeader(Stringname):獲得HTTP協議定義的文件頭信息
getHeaders(Stringname):返回指定名字的requestHeader的所有值,結果是一個枚舉的實例
getHeaderNames():返回所以requestHeader的名字,結果是一個枚舉的實例
getInputStream():返回請求的輸入流,用於獲得請求中的數據
getMethod():獲得客戶端向伺服器端傳送數據的方法
getParameter(Stringname):獲得客戶端傳送給伺服器端的有name指定的參數值
getParameterNames():獲得客戶端傳送給伺服器端的所有參數的名字,結果是一個枚舉的實例
getParameterValues(Stringname):獲得有name指定的參數的所有值
getProtocol():獲取客戶端向伺服器端傳送數據所依據的協議名稱
getQueryString():獲得查詢字元串
getRequestURI():獲取發出請求字元串的客戶端地址
getRemoteAddr():獲取客戶端的IP地址
getRemoteHost():獲取客戶端的名字
getSession([Booleancreate]):返回和請求相關Session
getServerName():獲取伺服器的名字
getServletPath():獲取客戶端所請求的腳本文件的路徑
getServerPort():獲取伺服器的埠號
removeAttribute(Stringname):刪除請求中的一個屬性
Ⅵ java中的對象和方法究竟是什麼
我大一的時候學過一學期的C,時間有點久了只能記住一點點。印象最深刻的就是開頭那個include.......
說回來Java和C其實代碼風格是很相似的。什麼面向過程什麼面向對象,說起來很繞,甚至我剛工作時還是很迷糊,但是工作一段時間就能明白了。
java中的對象可以理解為數據存儲對象,比如說資料庫里有個person表,對應的實體類一定要有一個person類,這個類里一般會有一些簡單屬性name,sex之類的。這些是每一個person都會有的,書上往往都會說「把大千世界看成一個個的對象」,這樣太繞你讀不懂就理解為資料庫person的每行都有name,sex欄位。
至於方法,就是為person編寫的業務程序。你的代碼需要person有一個聽的功能,你就定義一個 void say(),如果這個person什麼都不用做,那就沒有方法。