Java學習筆記-12.傳遞和返回對象

来源:http://www.cnblogs.com/junshijie/archive/2017/06/23/7070901.html
-Advertisement-
Play Games

1.Clone()方法產生一個object,使用方法後必須產生的object賦值。 Vector v2 = (Vector)v.clone(); 2.Clone()方法在object中是保護類型方法,如果自己創建的類需要使用Clone()方法的話需要自己重新寫一個,並且繼承Cloneable介面。 ... ...


1.Clone()方法產生一個object,使用方法後必須產生的object賦值。

Vector v2 = (Vector)v.clone();

2.Clone()方法在object中是保護類型方法,如果自己創建的類需要使用Clone()方法的話需要自己重新寫一個,並且繼承Cloneable介面。

package tweleve;

import java.util.*;

class MyObject implements Cloneable {
    int i;

    MyObject(int ii) {
        i = ii;
    }

    public Object clone() {
        Object object = null;
        try {
            object = super.clone();
        } catch (CloneNotSupportedException e) {
            System.out.println("MyObject can't clone");
        }
        return object;
    }

    public String toString() {
        return Integer.toString(i);
    }
}

public class LocalCopy {
    static MyObject g(MyObject v) {
        v.i++;
        return v;
    }

    static MyObject f(MyObject v) {
        v = (MyObject) v.clone();
        v.i++;
        return v;
    }

    public static void main(String[] args) {
        MyObject aMyObject = new MyObject(11);
        MyObject bMyObject = g(aMyObject);
        if (aMyObject == bMyObject)
            System.out.println("a==b");
        else
            System.out.println("a!=b");
        System.out.println("a=" + aMyObject);
        System.out.println("b=" + bMyObject);
        MyObject cMyObject = new MyObject(31);
        MyObject dMyObject = f(cMyObject);
        if (cMyObject == dMyObject)
            System.out.println("c==d");
        else
            System.out.println("c!=d");
        System.out.println("c=" + cMyObject);
        System.out.println("d=" + dMyObject);

    }

}

3.如果希望一個類能夠克隆那麼需要有下列步驟:(1)實現Cloneable介面

                                                                             (2)覆蓋Clone()方法

                                                                             (3)在自己的Clone()方法中調用super.clone()

                                                                             (4)在自己的clone()中捕獲違例 

4.String類中所有能修改String的方法其實都創建和返回了一個新的String類,原來的String類是沒有改變的,包括+和+=,StringBuffer比String操作字元串時更有效。

package tweleve;

import java.sql.Ref;

import org.omg.CORBA.SystemException;

public class Stringer {
    static String upcase(String s){
         return s.toUpperCase();
    }
    
    public static void main(String[] args){
        String qString=new String("howdy");
        System.out.println(qString);
        String qq=upcase(qString);
        System.out.println(qq);
        System.out.println(qString);
    }

}


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • import java.util.Arrays;//冒泡排序 public class Test { public static void main(String[] args) { int[] array = { 31, 22, 15, 77, 52, 32, 18, 25, 16, 7 }; /... ...
  • 題目背景 ·題目名稱是吸引你點進來的 ·實際上該題還是很水的 題目描述 ·1+1=? 顯然是2 ·a+b=? 1001回看不謝 ·哥德巴赫猜想 似乎已呈泛濫趨勢 ·以上純屬個人吐槽 ·給定一個正整數n,求將其分解成若幹個素數之和的方案總數。 輸入輸出格式 輸入格式: 一行:一個正整數n 輸出格式: ...
  • 題目描述 巫妖王的天災軍團終於卷土重來,血色十字軍組織了一支先鋒軍前往諾森德大陸對抗天災軍團,以及一切沾有亡靈氣息的生物。孤立於聯盟和部落的血色先鋒軍很快就遭到了天災軍團的重重包圍,現在他們將主力只好聚集了起來,以抵抗天災軍團的圍剿。可怕的是,他們之中有人感染上了亡靈瘟疫,如果不設法阻止瘟疫的擴散, ...
  • Plugins 摘一段來自MyBatis官方文檔的文字。 MyBatis允許你在某一點攔截已映射語句執行的調用。預設情況下,MyBatis允許使用插件來攔截方法調用: Executor(update、query、flushStatements、commint、rollback、getTransact ...
  • 類 Fabric 主機管理程式開發:1. 運行程式列出主機組或者主機列表2. 選擇指定主機或主機組3. 選擇讓主機或者主機組執行命令或者向其傳輸文件(上傳/下載)4. 充分使用多線程或多進程5. 不同主機的用戶名密碼、埠可以不同 README 1 import configparser 2 imp ...
  • 今天工作中聯調外部的一個介面用post方式傳輸,我按照文檔封裝參數成Jason字元串傳入,但是對方一直接受參數為空,折騰了半天也沒找到問題。很苦惱,檢查代碼都沒有錯誤,可是為什麼對方接受參數為空呢?然後找對方的技術人員聯調,看看是怎麼回事,也折騰了半天最後發現對方是用NameValuePair方式傳 ...
  • C++getline使用 一、心得 二、使用 getline(istream &in, string &s) 從輸入流讀入一行到string s •功能: –從輸入流中讀入字元,存到string變數 –直到出現以下情況為止: •讀入了文件結束標誌 •讀到一個新行 •達到字元串的最大長度 –如果get ...
  • 題目背景 快noip了,yyy很緊張! 題目描述 現在各大oj上有n個比賽,每個比賽的開始、結束的時間點是知道的。 yyy認為,參加越多的比賽,noip就能考的越好(假的) 所以,他想知道他最多能參加幾個比賽。 由於yyy是蒟蒻,如果要參加一個比賽必須善始善終,而且不能同時參加2個及以上的比賽。 輸 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...