導航:首頁 > 編程語言 > java實例化方法

java實例化方法

發布時間:2023-01-12 13:21:56

java對象實例化

按照題目只創建一個實體類:
Tree.java
public class Tree {
//種類
private String kind;
//年齡
private String age;
//高度
private String height;

public String water(){
return "我今天要給他澆水";
}

public String cut(){
return "需多修剪枝葉";
}

//Geter and Setter
public String getKind() {
return kind;
}

public void setKind(String kind) {
this.kind = kind;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getHeight() {
return height;
}

public void setHeight(String height) {
this.height = height;
}
}
測試類
TreeTest.java
public class TreeTest {
public static void main(String[] args) {
//桃樹
Tree peach = new Tree();
peach.setKind("桃樹");
peach.setAge("才種四個月");
//柳樹
Tree willow = new Tree();
willow.setKind("柳樹");
willow.setHeight("一米高了");

String str = willow.getKind()+willow.getHeight()+","+willow.water()+","+peach.getKind()+peach.getAge()+","+peach.cut();
System.out.println(str);
}
還可以用多態的方式,實現一個Tree介面,或者定義一個Tree父類,通過子類繼承的方式來實現

㈡ Java類的實例化順序是什麼樣的Java線程同步的方式有哪些

引言:java是在1990年初 ,被詹姆斯•高斯林等人開發的一門面向對象的編程語言。起初,java被稱為0ak,來經過發展0ak改名為java,與1995年的五月份正式向大家發布。

一、java類的實例化順序

java的實例化順序在繼承沒有的情況

單獨一個類的場景下,初始化順序為依次為靜態數據,繼承的基類的構造函數,成員變數,被調用的構造函數。

其中靜態數據只會初始化一次。(靜態數據包括靜態代碼塊和靜態變數,每個類的靜態數據只會初始化一次)

在繼承的情況下

添加兩個基類,讓繼承父親,父親繼承祖父。

繼承的情況就比較復雜了。由繼承了基類,還將往上回溯,遞歸地調用基類的無參構造方法。

在我們的例子中,在初始化靜態數據後,會先往上追溯,調用父的默認構造方法,此時再往上追溯到爺爺的默認構造方法。


無論是java還是什麼別的東西他都體現了現代社會與信息技術的不斷發展,人們在進行進行技術開發時也有了越來越多的方法。程序類的工作也有了更為快捷的方法,這為信息技術的發展也提供了更好的發展方法

㈢ Java的實例化

對象是類的一個實例,創建對象的過程也叫類的實例化。對象是以類為模板來創建的。
在Java中,使用new關鍵字來創建對象,一般有以下三個步驟:
聲明:聲明一個對象,包括對象名稱和對象類型
實例化:使用關鍵字new來創建一個對象。
初始化:使用new創建對象時,會調用構造方法初始化對象。

㈣ java類中定義的類怎麼 實例化

子對象可以使用父類的除了private的所有方法,父類不能使用子類的方法。
就好象,兒子知道父親乾的詳細信息(比如娶了多少老婆,賺了多少錢),但是父親不能知道他這一生會生多少兒子,兒子長大以後會娶多少老婆,會賺多少錢一樣。
a b
= new
b();
b想訪問b類的方法,可以通過強制類型轉換
((b)b).setcolor();

㈤ java 如何實例化一個對象

我覺得實例化對象有三種方法:
1.new
關鍵字
上面的答案都說了
2.class.forname("類名").newinstance()
該類必須提供一個參數列表為空的構造方法
3.反序列化
可從文件中實例出一個java對象

㈥ java實例化

後兩種方法是靜態工廠方法。它們和new語句的區別如下:
我們要得到一個對象,馬上想到構造方法(new語句調用構造方法),其實,靜態工廠方法也可以替我們做到。
例如,在jdk1.4裡面,Boolean用了一個靜態方法來得到一個boolean對象:
public static Boolean valueOf(boolean b)

question:這個方法實際上並不返回一個object?
對的, sun的jdk 幫助裡面講: If a new Boolean instance is not required, this method should generally be used in preference to the constrUCtor Boolean(boolean).
但是,不是說靜態工廠方法所有時候都不返回一個object,只是不是所有時候都返回一個object。

使用靜態工廠方法和構造方法比較的優缺點:
優點:
1. 靜態工廠方法都是有自己的名字,輕易理解.
2. 靜態工廠方法並不要求每次都生成一個對象.比如上面提到的Boolean的public static Boolean valueOf(boolean b)就不會返回一個object. sun的jdk幫助文檔裡面也提到,在不需要得到一個對象的情況下,使用valueof方法可以得到性能的提升.
而且這樣,可以控制類在生的期間該類的句柄數,這個作用在單態(item 21)和類型安全(item 21)都是有用的.
3. 靜態工廠方法可以返回該類的任何子類,這給了程序員更大的選擇空間.
比如Collections,用了很多靜態工廠方法來得到immuable的set,map之類的.
而且靜態工廠方法可以強迫user通過介面來引用被返回的對象,而不是每次都使用構造函數,這是一個好習慣.
靜態工廠方法返回的類,在編寫含有靜態工廠方法這個類的時候,可以並不存在,這就提供了一種靈活的service provider framework.比如Java的密碼系統擴展(JCE),provider為user提供多個api實現,framework提供一種機制來register這些實現,用戶只需直接使用api,而不用考慮自己在使用哪個實現。
下面是這種機制的程序框架:
import java.util.*;
// Provider framework sketch
public abstract class Foo {
// Maps String key to corresponding Class object
private static Map implementations = null;
// Initializes implementations map the first time it´s called
private static synchronized void initMapIfNecessary() {
if (implementations == null) {
implementations = new HashMap();

// Load implementation class names and keys from
// Properties file, translate names into Class
// objects using Class.forName and store mappings.
// ...
}
}
public static Foo getInstance(String key) {
initMapIfNecessary();
Class c = (Class) implementations.get(key);
if (c == null)
return new DefaultFoo();
try {
return (Foo) c.newInstance();
} catch (Exception e) {
return new DefaultFoo();
}
}
public static void main(String[] args) {
System.out.println(getInstance("NonexistentFoo"));
}
}
class DefaultFoo extends Foo {
}

靜態工廠方法的缺點:
1. 僅僅有靜態工廠方法而沒有public的構造方法的類不能被繼續…這也不是沒有好處--可能能迫使程序員使用復合來代替繼續.
2. 有時候可能會導致與其他的static方法混淆.這個缺點可以通過使用標準的命名方法來區別於其他的static方法.
現在有兩種方法已經開始形成標准:
valueof(type k)-返回和k有相同值的句柄.
Getinstance-返回一個復合參數所描述的句柄.但是不一定和參數具有相同的值..這個方法在Provider framework裡面是很有用的.

所以,我們不要每次都毫不猶豫的使用構造方法,有時候靜態工廠方法可能是更加合適的.但是當你無法取捨的時候,還是使用構造方法吧,因為它是比較普通和標準的.

文章來源: 動態網站製作(www.knowsky.com) 出處:http://www.knowsky.com/369377.html

㈦ java 怎樣實例化

先聲明一個類:
public class A{//這里聲明了一個類A

}
如果想實例化類A,就用new,如:
A a = new A()//這里就實現了對類A的實例化

㈧ java中實例化方法是什麼意思

在面向對象的編程中,通常把用類創建對象的過程稱為實例化,其格式如下:
類名 對象名 = new 類名(參數1,參數2...參數n)
(這里,「類名」這個類名實例化成了「對象名」這個對象)
如 Date date=new Date();就是用日期類創建了一個日期的對象,就叫對象的實例化。
多數語言中,實例化一個對象 其實就是在內存中開放一個空間 用於存儲新的產物,即對象。
例如一個類class A{
.....
}
A a=new A();

㈨ 在java中 什麼叫 實例方法

實例方法也叫做對象方法。
類方法是屬於整個類的,而實例方法是屬於類的某個對象的。
由於類方法是屬於整個類的,並不屬於類的哪個對象,所以類方法的方法體中不能有與類的對象有關的內容。即類方法體有如下限制:
(1) 類方法中不能引用對象變數;
(2) 類方法中不能調用類的對象方法;
(3) 在類方法中不能使用super、this關鍵字。
(4)類方法不能被覆蓋。
如果違反這些限制,就會導致程序編譯錯誤。
與類方法相比,對象方法幾乎沒有什麼限制:
(1) 對象方法中可以引用對象變數,也可以引用類變數;
(2) 對象方法中可以調用類方法;
(3) 對象方法中可以使用super、this關鍵字。
在程序設計中,一些通用的、公用型的方法與類的對象無關,因此常常被作為類方法實現。如Java類庫中Math類,其中多數的數學運算操作都被定義成靜態方法。因此,可以使用類方法把一些通用的、公用型的方法放在合適的類中,從而很好地將它們組織起來。應用程序中的主方法main就是類方法。
例如:
class Clerk {

int c_ClerkNo;//職員號
String c_ClerkName;//職員姓名
double c_ClerkSalary;//工資
static int c_NextClerkNo=1000;//下一個職員號

static double c_LowSalary=280;//例4-11

public Clerk(String name,double salary) {
c_ClerkNo=++c_NextClerkNo;
// c_ClerkNo=c_NextClerkNo++;

c_ClerkName=new String(name);
// c_ClerkName=name;

c_ClerkSalary=salary;
}
}

public class InstanceClerk
{
public static void main(String[] args)
{
Clerk objclerk1=new Clerk("張三",892.5);
Clerk objclerk2=new Clerk("李四",1025.8);

String aName=new String("王五");
Clerk objclerk3=new Clerk(aName,2000);

System.out.println("姓名:"+objclerk1.c_ClerkName+"編號:"+objclerk1.c_ClerkNo+"工資:"+objclerk1.c_ClerkSalary);
System.out.println("姓名:"+objclerk2.c_ClerkName+"編號:"+objclerk2.c_ClerkNo+"工資:"+objclerk2.c_ClerkSalary);
System.out.println("姓名:"+objclerk3.c_ClerkName+"編號:"+objclerk3.c_ClerkNo+"工資:"+objclerk3.c_ClerkSalary);

System.out.println("最低工資:職員1="+objclerk1.c_LowSalary);
System.out.println("最低工資:職員2="+objclerk2.c_LowSalary);

Clerk.c_LowSalary=330;

System.out.println("提高以後");
System.out.println("最低工資:職員1="+objclerk1.c_LowSalary);
System.out.println("最低工資:職員2="+objclerk2.c_LowSalary);
}
}
你可以參考這個源程序,然後自己將注釋的語句去掉注釋等等,運行一下就會明白的。
希望對你有所幫助。

㈩ java中實例化一個對象有幾種方式

方法一:new
方法二:使用工廠模式,引入工廠類
方法三:使用反射:Class.forName
方法四:對象克隆

閱讀全文

與java實例化方法相關的資料

熱點內容
扣扣加密技巧 瀏覽:720
蘋果如何創建伺服器錯誤 瀏覽:495
軟考初級程序員大題分值 瀏覽:473
js壓縮視頻文件 瀏覽:578
linux如何通過命令創建文件 瀏覽:989
應用加密app還能訪問應用嘛 瀏覽:433
安卓怎麼用支付寶交違章罰款 瀏覽:665
php面向對象的程序設計 瀏覽:504
數據挖掘演算法書籍推薦 瀏覽:894
投訴聯通用什麼app 瀏覽:150
web伺服器變更ip地址 瀏覽:954
java正則表達式驗證郵箱 瀏覽:360
成熟商務男裝下載什麼軟體app 瀏覽:609
加密2h代表長度是多少厘米 瀏覽:23
拍賣程序員 瀏覽:101
電腦的圖片放在哪個文件夾 瀏覽:276
unsignedintjava 瀏覽:217
編譯器下載地址 瀏覽:43
什麼是面對對象編程 瀏覽:709
b站伺服器什麼時候恢復 瀏覽:722