導航:首頁 > 編程語言 > javaset賦值

javaset賦值

發布時間:2022-03-12 14:58:14

java中get set 方法賦值問題

setter、 gettre
setter(private String name):public void setName(String n);
getter(private String name):public String getName();

class Person{ //類名稱首字母大寫
private String name ;
private int age ;
public void setName(String n){
name = n ;
}
public void setAge(int a){
age = a ;
}
public String getName(){
return name ;
}
public int getAge(){
return age ;
}
public void tell(){ //沒有static
System.out.println("姓名:" + name + ",年齡:" + age) ;
}
}

public class Hello{
public static void main(String args[]){
Person per = new Person() ; //聲明並實例化對象
per.setName("張三") ;
per.setAge(20) ;
per.tell() ;
}
}
以上的代碼只是可以訪問,不過沒有驗證,但是問題是驗證在哪塊?
應該在setter之中增加檢查操作
class Person{ //類名稱首字母大寫
private String name ;
private int age ;
public void setName(String n){
name = n ;
}
public void setAge(int a){
if(a >=0 && a <= 250){
age = a ;
}
}
public String getName(){
return name ;
}
public int getAge(){
return age ;
}
public void tell(){ //沒有static
System.out.println("姓名:" + name + ",年齡:" + age) ;
}
}

public class Hello{
public static void main(String args[]){
Person per = new Person() ; //聲明並實例化對象
per.setName("張三") ;
per.setAge(-20) ;
per.tell() ;
}
}
以後在進行開發的時候,如果有需要,則在setter上加入一些驗證措施
而getter只是簡單的將數據返回即可,不需要做任何的驗證。

疑問?為什麼現在沒有在程序之中使用getter()方法?
現在類之中的getName()和getAge()兩個方法雖然被定義了,但是發現
並沒有被使用,那麼這樣的定義還有意義?
這類之中的屬性定義setter、getter操作方法的目的就是為了設置和
取得屬性的內容,也許某一個操作暫時不使用到取得的操作,不過從
開發來講,必須全部提供,
class Person{ //類名稱首字母大寫
private String name ;
private int age ;
public void setName(String n){
name = n ;
}
public void setAge(int a){
if(a >=0 && a <= 250){
age = a ;
}
}
public String getName(){
return name ;
}
public int getAge(){
return age ;
}
public void tell(){ //沒有static
System.out.println("姓名:" + name + ",年齡:" + age) ;
}
}

public class Hello{
public static void main(String args[]){
Person per = new Person() ; //聲明並實例化對象
per.setName("張三") ;
per.setAge(-20) ;
per.tell() ;
System.out.println(per.getName()) ;
}
}

以後在定義類的時候,所有的屬性都要編寫private封裝,
封裝之後的屬性如果需要被外部操作,則編寫setter、getter.

② java中怎麼往集合類set里添加數據

兩種向Set中添加元素的方法,第一種是使用add()方法,每次添加一個元素到set中,當集合中不存在相同元素時將添加到集合中,並返回true,當集合中存在元素時,返回false。代碼如下:

Set<String> sets = new HashSet<>();
sets.add("String");
System.out.println(sets.add("Tree"));
System.out.println(sets.add("String"));
List<String> lists = new LinkedList<>();
lists.add("test");
lists.add("test");
lists.add("one");
System.out.println(sets.addAll(lists));

還有一個是向集合中批量添加元素的方法addAll(),這個方法的入參是Colletion。上述代碼執行結果如下:

擴展知識

Set集合可以知道某物是否已近存在於集合中,不會存儲重復的元素,注重獨一無二的性質,用於存儲無序(存入和取出的順序不一定相同)元素,值不能重復。可以很好地作為排重時使用的數據結構,但要注意集合內部數據一般情況沒有順序。常用的set有HashSet和TreeSet。

TreeSet是JAVA中集合的一種,TreeSet 是一個有序的集合,它的作用是提供有序的Set集合。它繼承於AbstractSet抽象類,實現了NavigableSet<E>,Cloneable,java.io.Serializable介面。一種基於TreeMap的NavigableSet實現,支持2種排序方式:自然排序或者根據創建TreeSet 時提供的 Comparator 進行排序。

③ java get set怎麼給時間類型的變數賦值

定義屬性的時候 要提供get set 方法 。賦值的時候就set屬性()即可。

④ java中charset怎麼賦值

這個方法是把位元組數組轉為字元串用的,第一個參數是位元組數組,第二個參數是字元編碼。比如:byte[]bytes=newbyte[1024];newString(bytes,"UTF-8");意思是把bytes數字按"UTF-8"的編碼方式轉成字元串。

⑤ java中對象屬性用set賦值時是開辟新內存還是在原有的內存中直接修改的

直接修改的是原對象中的屬性

⑥ 在java中 變數之間是如何賦值的

一、基本類型數據賦值
實驗1 :定義一個int 類型變數a = 3,並將a 賦值給int b,然後將a ,賦值為5,那麼b 的值是3 還是5 呢?

int a = 3;
int b = a ;
a = 5 ;
System.out.println(" a = " + a+" b = "+b );

運行程序 ,列印結果為 :
a = 5 b =3

我們看到,b並沒有隨a的改變而改變。基本數據類型是值賦值。
二、String類型數據賦值
實驗2:定義一個String類型變數s1 賦值為「a」,並將s1賦值給String s2 ;然後將s1賦值為「b」,那麼s2的值是 「a」還是 「b」?

String s1 = "a" ;
String s2 = s1;
s1 = "b" ;
System.out.println("s1 = "+s1+" s2 = "+ s2);

運行程序 ,列印結果為 :

s1 = b s2 =a

我們看到,s2並沒有隨s1的改變而改變。

三、自定義數據類型賦值
實驗3: 創建一個TUser u1 ,並將u1賦值給TUser u2 ,將 u1重新賦值 ,u2會隨著u1改變而改變嗎 ?

TUser u1 = new TUser();
u1.setId(1);
TUser u2 = u1 ;
u1 = new TUser();
u1.setId(2);
System.out.println("ui :"+u1 + "\t\n" +"u2 : "+ u2);

運行程序,列印結果為:
u1 :TUser(id=2)
u2 : TUser(id=1)

我們看到u2並沒有隨著u1的改變而改變。
如果我們不改變u1指向的地址,而是改變u1指向地址所對應的數據(即將 u1 = new TUser(); 注釋掉)。那麼u1,u2 列印的記過將都會是 TUser(id=2)

通過以上三個實驗我們發現:
變數之間的賦值,可以說沒有所謂的值賦值和地址賦值。
簡而言之,將一個變數a賦值給另一個變數b,是將這個變數a的值,拷貝一份給變數b(如果a是引用類型,就拷貝引用,如果是基本類型,就拷貝原始值)

⑦ java的set方法

我怎麼沒明白呢? xx是個類還是個java primitive type?給java 變數賦值用 =
變數 = 值;
就行了啊。
看你寫xx.setParentId ('0');估計xx是個類?xx有個變數叫parentId? 你想給這個parentId一個值?
你可以在xx類里叫一個set方法
Class XX{
private int parentId;
public void setParentId(int parentId){
this.parentId = parentId;
}
}

外部調用時 xx.setParentId(0);就可以。
當然,如果parentId是字元串,就把int的地方改成String,然後調用xx.setParentId("0");

⑧ java反射給欄位賦值就是給實體類的set賦值,怎麼做

packagecom.test;

importjava.lang.reflect.Field;

publicclassA{
privateStringname;

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicstaticvoidmain(String[]args){
try{
Class<A>c=A.class;
Fieldfield=c.getDeclaredField("name");//獲取欄位
Objectobj=c.newInstance();//實例化對象
field.set(obj,"aaa");//為欄位賦值
System.out.println(field.get(obj));
}catch(Exceptione){
e.printStackTrace();
}
}
}

⑨ java新手求助super和set給父類賦值!

class Animal

{

private int age;

public Animal(){

}

public Animal(int age){

this.age = age;

}

public void setAge(int age){

this.age = age;

}

public int getAge(){

return age;

}

}


class Dog extends Animal

{

public Dog(int age){

// super(age); //------------為什麼此處用setAge(age);不行呢???????

super.setAge(age); //setAge(int)本是父類的方法,所以要這樣調用,另外這樣做還需要在父類當中聲明一個無參的構造方法

}

public int getAge(){

return super.getAge();

}

}

public class Test6

{

public static void main(String[] args)

{

Dog dog = new Dog(4);

System.out.println(dog.getAge());


}

}


⑩ JAVA中的SET是設置的意思,但是它和我們直接用等號賦值有什麼區別啊

一個是 屬性私有化
另外可以動態賦值

閱讀全文

與javaset賦值相關的資料

熱點內容
舒淇六部 瀏覽:901
穿越影視世界收女主的小數 瀏覽:851
胸很大電影 瀏覽:924
台灣催淚老電影推薦 瀏覽:924
android數據觀察者 瀏覽:530
如何破解收費軟體app 瀏覽:884
原理圖編譯器生成的文件後綴 瀏覽:824
成龍非洲盜寶電影 瀏覽:597
回到古代當太子的小說免費閱讀 瀏覽:602
香港武打電影功夫片免費完整版 瀏覽:627
河南聯通伺服器地址雲空間 瀏覽:768
海泰克怎麼加密 瀏覽:895
hashset遍歷java 瀏覽:371
中國打越南電影有哪些 瀏覽:702
消失的眼角膜之瞎子傳奇在線觀看 瀏覽:272
如何在蘋果平板上設置app切換 瀏覽:707
帶著金手指到民國 瀏覽:593
les肉電影 瀏覽:821
嬰兒武打片 瀏覽:642
師徒訓誡小說推薦 瀏覽:548