C50108
  • 2019/0801/轉職成功路途開始
  • 自學心得與此網站使用方式
  • 行事曆&課程大綱
  • 2019/0224/自我檢視
  • 雜記
    • 2019/0103/雜記
    • 2019/0410/作品集建構
    • 2019/0429/職訓局書單
    • 2019/0317/自我檢視
    • 2019/0316/陪玄松去高車討論&環境圖流程圖大神們line討論
    • 2019/0305/Gitbook使用方法
  • 2018/10XX/轉職心路歷程
  • 職訓局里程碑
    • 201901
      • 2019/0103/行動商務系統設計與開發,職訓局報到
      • 2019/0104/正式開課日&行動商務課程簡介
      • 2019/0108/資料庫理論/Access&WEB開發簡介
      • 2019/0109/資料庫資料型態屬性&HTMLtag
      • 2019/0110/計概基礎概念
      • 2019/0111/HTML表格table&form表單_post/get&iframe
      • 2019/0114/計&網概概念&網路層概念
      • 2019/0115/資料庫Access運算值&CSS簡介&在職班補充
      • 2019/0116/Access比較/邏輯運算&CSS_在職班補充+選擇器+Box model
      • 2019/0117/資訊系統架構&網路層
      • 2019/0118/資料庫正規化
      • 2019/0121/計概IT分工&資料庫正規化
      • 2019/0122/網路層&CSS父子容器切版
      • 2019/0123/Access資料庫關聯&CSS position&偵錯
      • 2019/0124/C#宣告、指定運算子
      • 2019/0125/VM虛擬機_基礎介紹
      • 2019/0128/VM虛擬機架設_虛擬網卡設定&伺服器權限設置
      • 2019/0129/Wireshark查詢網路層&資料庫物件導向
      • 2019/0130/ERmod雞爪圖&C#if、for時間複雜度
      • 2019/0131/C#流程控制&變數型別
    • 201902
      • 2019/0201/系統分析與設計_資料庫ERmod&c#Homework
      • 2019/0211/ASP.NET_Webforms&物件命名空間
      • 2019/0212/定址&網路遮罩
      • 2019/0213/SQLSeverM.S.介紹&AspWebforms表單控制項
      • 2019/0214/網概乙太網路&網路安全
      • 2019/0215/Pre Javascript 基礎 & 在職班補充
      • 2019/0218/TSQL基本指令&ASP.net左右置換表格/驗證傳值
      • 2019/0219/Javascript終極密碼&musicplay&asp.net驗證器
      • 2019/0220/SS基本語法&網概line機器人
      • 2019/0221/前端Javascript musicplay、內聚力耦合率
      • 2019/0222/前端Javascript musicplay、內聚力耦合率&伺服器權限
      • 2019/0223/SqlServerHomework&第一次專案報告
      • 2019/0225/SS合併查詢&ASP.NET驗證器
      • 2019/0226/伺服器ntfs安全性權限/共用權限
      • 2019/0227/Javascript_music_play_end&ASP.net串聯SQL(datasource就是拿來串SQLServer的)
    • 201903
      • 2019/0304/SS集合運算/子查詢/exists&asp.net GridView 事件 OnRowDataBound
      • 2019/0305/SS查詢式end&ASP.NET_Gridview_自訂樣式分頁
      • 2019/0306/Javascript musicplay_really_end
      • 2019/0307/前端HTML5鑲嵌字型&伺服器網域概念
      • 2019/0308/Android Studio_基礎概念&開發環境建置
      • 2019/0311/胡中興 工業4.0講習
      • 2019/0312/安卓系統_開發基礎介紹
      • 2019/0313/安卓工作室_基礎/布局內元件
      • 2019/0314/Asp.net鏈結資料庫-查詢
      • 2019/0315/SQS DML&第二次專案報告
      • 2019/0318/SQL DDL & 伺服器 自學基礎
      • 2019/0319/Android Studio_布局內元件&佈局規劃元件
      • 2019/0320/SQL檢視表&tsql基礎&Asp.net_Gridview
      • 2019/0321/TSQL&TDM&ASP.NET_Datalist
      • 2019/0322/DOM&JQ基礎&系統分析設計PPT&在職班補充
      • 2019/0325/TMD&Asp.net上傳圖片/產生QRCode
      • 2019/0326/SQLServer_預存程序+函數&Asp.net_Webforms半自動鏈結資料庫與自動化更新
      • 2019/0327/安卓工作室_佈局規劃元件
      • 2019/0328/jQuery選擇器應用&Ajax導讀+應用&asp.net串sserver_註冊帳號功能
      • 2019/0329/ADDS伺服器架設&第三次專題報告
    • 201904
      • 2019/0401/SQL觸發程序&Asp.net自動寄信&認證信
      • 2019/0402/前端作業四-jQ應用轉換樣式&ASP.NET_FormView控制項-會員資料維護實例
      • 2019/0403/JQ事件動畫&股市&Usecase
      • 2019/0408/安卓工作室_元件/布局基本end
      • 2019/0409/安卓工作室-物件導向事件驅動實作+Homework1&2
      • 2019/0410/上午小組討論-作品集自習&Visual studio webform+MVC範本
      • 2019/0411/安卓工作室-UI觸發委派函式與控制物件
      • 2019/0412/JQ動畫實做(寶可夢遊戲開場)&第四次專題報告
      • 2019/0415/前端JQ-Ajax+JSON&後端ADO建置、主板頁面概念控制項、Bootstrap演示
      • 2019/0416/安卓工作室UI控件案例結束、IDE Eclipse_Java物件導向基礎
      • 2019/0417/伺服器網域ADDNS&416LINE討論
      • 2019/0418/SQL指標、索引&Use cace
      • 2019/0419/主頁、Webform ADO.NET Entity Fromwork 增刪修實作&第五次專題報告
      • 2019/0423/Java基礎(型別/溢位/自動強制型別轉換/鑄造物件/串流/)&I/O物件用法(底層/較不底層)
      • 2019/0424/Bootstrap_RWD基礎/應用&Asp.Net_MVC實作增刪修(修待補)
      • 2019/0425/伺服器IIS安裝&資料匯入與管理
      • 2019/0426/Asp.Net_MVC增刪修實作(補修)&bootstrap – gridsystem– 網格系統&第六次專題報告&全國技能競賽網頁設計
      • 2019/0429/物件導向技術原理方法實作
      • 2019/0430/資料庫設計應用效能調教_SQL all end&ASP.NET_MVC_Controller單元_純C無V無M操作/簡單複雜繫結
    • 201905
      • 2019/0501/內部網站辨識&外部DNS域名/IP+自架DNS伺服器理解
      • 2019/0502/Java語言基礎、物件導向基礎
      • 2019/0503/Asp.net泛型處理常式驗證圖片應用&第七次專題報告Usecase
      • 2017/0506/Bs_FlexBox&Asp.Net_MVC_View+Razor@+Viewbag+helper
      • 2019/0507/Java 物件導向_類別+函式觀念&階段性作業三
      • 2019/0508/Asp.Net_MVC_Model_ADO.NET+Entityframework+LoginMember實作+MVC觀念
      • 2019/0509/Java物件導向(函式)_儲存型態+回傳值+多載+自制+例外處理+this參照+存取+複合
      • 20919/0510/第八次專題報告=功能DEMO
      • 2019/0514/Java_靜態類別+繼承特性
      • 2019/0515/RWD Utility+Card&MVC ViewModel+CRUD(RD)
      • 2019/0516/BS form&驗證+JQ驗證 & MVC_CRUD(CU)
      • 2019/0517/ASP.NET Webform介紹Master page 主頁 & Session 簡介 & 登入login驗證 & 隱碼攻擊injection & 工具箱程式碼片段使用
      • 2019/0520/繼承&存取權特性+java作業四+字符串格式化+多形+抽象類別
      • 2019/0521/抽象類別+介面
      • 2019/0522/Bootstrap Components 元件介紹 + MVC API 概念&實作
      • 2019/0523/IIS IP限制&ASP.NET部屬
      • 2019/0524/WebApi異質程式連線方式&第九次專題報告_循序圖
      • 2019/0528/Bootstrap Components 元件介紹 + MVC 登入驗證 + 商品加入購物車 實作
      • 2019/0529/ASP.NET_MVC購物車訂單功能完成+BootstrapComponents元件介紹
      • 2019/0530/原本是伺服器的課,但拿來做專題。
      • 2019/0531/ASP.NET_WebformAllView物件功能清單&ListView實作&第十次專案報告(完整循序圖)
    • 201906
      • 2019/0603/Bootstrap Components RWD End + ASP.NET_MVC Part2 PhotoSharing CodeFirst & Model 驗證
      • 2019/0604/ASP.NET_MVC Part2 PhotoSharing Controller & Filter & ADO.NET & View@RAZOR Helper
      • 2019/0605/Java介面實作&結束+安卓工作室(整合Layout與Java)Intent意圖&Bundle包裹
      • 2019/0606/第十一次專案報告功能demo+SingnaIR+伺服器作業+端午歌唱比賽
      • 2019/0609/黃大神傳授Visual_Studio&除錯技巧
      • 2019/0610/番外篇 Web Socket 即時連線& 就業前準備與技巧
      • 2019/0611/安卓工作室_(意圖+隱含意圖)資料傳遞+Android生命週期+硬體裝置與應用
      • 2019/0612/WebSockets Notification + MVC Part2 PhotoSharing PartialView & ADO.NET & EntitySQL & VMd
      • 2019/0613/MVC Part2 PhotoSharing ViewModel & ErrorHandle
      • 2019/0614/第十二次專案報告 功能Demo
      • 2019/0618/MVC Part2 PhotoSharing Route & Sitemap & _LayOut & AJAX
      • 2019/0618/RWD在職班_(Javascript_object-oriented programming)
      • 2019/0619/安卓工作室_(硬體裝置與應用)相機操作&GPS+階段性作業6+延伸 ( APP End )
      • 2019/0620/MVC補充C#MS SQL匯入CSV+上傳CSV存入MS SQL
      • 2019/0621/第十三次專案報告 功能Demo
    • 2019/0701/最終專案報告
    • 2019/0702/結訓與家人遊台東預計0708開始找工作自學筆記應該會等工作穩定後繼續開始
  • 自學里程碑
    • 201901
      • 2019/0107/DR
      • 2019/0108/UW
      • 2019/0103/Git
      • 2019/0103/CS
      • 2019/0115/Vscode
      • 2019/0116/JSON&AJAX
      • 2019/0122/卡內基
      • 2019/0126/MBTI
      • 2019/0131/PDP 外在 內在
    • 201902
      • 2019/0217/huli_half Developer
      • 2019/0219/SEO
      • 2019/0219/雪球速讀法
    • 201903
      • 2019/0304/asp、php、jsp、asp.net、net. Framework、asp.net core
      • 2019/0329/網站架站初嘗試
    • 201904
      • 2019/0415/Datatype-Explanation
      • 2019/0416/ASP.NET_Webform&Core&MVC(MVVM/MVP)
    • 201905
      • 2019/0613/開發職訓局共同專案時遇到的問題與解法
      • 2019/0514/ASP.NET SignalR
      • 2019/0514/JS擴展-JQ、React、Vue、Angular...
      • 2019/0514/Sass&Scss
      • 2019/0514/MVC結合Webform
      • 2019/0515/ASP.NET MVC_TempData/ViewData/ViewBag
      • 2019/0522/[自學筆記]海綿體啟蒙??
Powered by GitBook
On this page
  • #java 類別&函式
  • ##字串類別class
  • ##建構元constructor建構子?建構式
  • ##Stringbuffer類別
  • #下午物件導向函式觀念
  • ##先弄java 迴圈作業
  • 階段性作業3
  • #函式
  • ##優點
  • ##函式存取概念 ( 類似權限

Was this helpful?

  1. 職訓局里程碑
  2. 201905

2019/0507/Java 物件導向_類別+函式觀念&階段性作業三

#java 類別&函式

前情提要陣列的運算 (矩陣相乘是典型的方式

等等要做作業

會使用到多階層for與while迴圈

##字串類別class

String

Stringbuffer

內建類別庫 一堆寫好的函式庫

字串很像字元型別的一維陣列

利用建構元(建構式)產生字串物件

字串類別庫提供許多方法可以操控物件

包含

取得字串長度

擷取字元

擷取子字串

將字串串接

字串的搜尋與取代

字串的大小寫轉換

完整的可以在文件裡面查詢

string一旦被指定值除非值接指定,不可以局部改變它的值

例如 abcd 想改成 accd 那就要重新指定

但stringbuffer可以

底層操作其實是abcd其實還在只是空在那邊

然後創造了一個新的accd指給舊的string

但是要連續做個幾萬次才會有差異

但是如果執行一兩次反而stringbuffer效能耗的更多

Replace取代insert插入

##建構元constructor建構子?建構式

和類別名稱相同的方法(函式)

專門產生屬於該類別的物件

( new 在產生時做一些屬性內容的重新初始化配置

一個類別可以擁有許多建構元

( 沒有參數的版本 一個兩個三個…的版本 (類似多型

Public string ()

Public string (byte[]bytes)

Public string (byte[]asci,inthibyte)

.

.

.

Ex

String str;

Str = sc.nextline()

有很多應用可以看文件(看與使用的環境相容的版本

https://Docs.oracle.com/javase/8/docs/api/java/lang/String.html

https://docs.oracle.com/javase/8/docs/api/index.html?java/lang/String.html

裡面包含

Constructors建構子多載

Methods方法

.

.

.

String A=XX

其實就跟

String A = New Srting(XX)

這裡要去看一下PPT剛剛走神 …

然後是一些string物件常用的方法

像是

GetChars charAt

與需要輸入的參數

接著是

###例子java12_4.java

宣告配置字串(物件)s1利用字串(物件)s1操作(方法)charAt擷取字元放入字元陣列c1(物件)中,在利用字串(物件)s1操作(方法)toCharArray字串轉字元並塞入字元陣列c2(物件)中,操控字串(物件)s1操作(方法)getChars擷取字元(起始值,結束值,塞入哪裡c3字元陣列,索引直偏移量看要從原來的哪開始塞從0開始則會覆蓋)

C3[0]=’a’;C3[1]=’b’

如果是1則C3=ajava

如果是0則C3=java

###例子java12_5.java

宣告配置s1字串(物件)與s2字串(物件)並給定某值

操控System.out (靜態方法)println(方法)印出一行值

然後用此方式在印出 呼叫s1s2與呼叫s1s2做(方法)length顯示其長度值

System.out.println(s1 + s1.length()+s2+s2.length());

###主字串擷取子字串

子字串=主字串.Substring(開始索引,結束索引)有很多多型

###字串串接字串

Concat(用法可以去看官方文件

###例子 java12_6.java

宣告s1字串物件給值

利用s1字串物件操作擷取字串方法並把產值給予s2字串物件

宣告s3字串物件給值

利用s3字串物件操作擷取字串方法並把產值給予s4字串物件

System.out(靜態方法編譯的時候就建構好的類別可以直接使用)物件println

Concat(方法)也是類似方式

###字串搜尋

indexOf()頭到尾

lastIndexOf()尾到頭

找到時回傳1

找不到回傳-1

有很多型 ( 有找字元的或從哪個位指找 等等

###字串大小寫轉換

toLowerCase()

toUpperCase()

也是有很多型

###字串取代

Replace()

也是有很多型

###例子 java12_7.java

宣告s1字串給值

宣告s2字串並將s1字串重置值並把值給s2

宣告s3字串不給值

宣告5個int

並把s1(方法)搜尋值的結果存入第一個int

並把s1(方法)搜尋值的結果存入第二個int

並把s1(方法)反向搜尋值的結果存入第三個int

並把s1(方法)搜尋值的結果存入第四個int

並把s1(方法)反向搜尋值的結果存入第五個int

System.out(靜態方法)println(方法)印出剛剛宣告的五個int值

重新指定s3為s1重置值(方法)replace

System.out(靜態方法)println(方法)印出s1s2s3

宣告s4值為s1方法字串變大touppercase

System.out(靜態方法)println(方法)印出s4

接著介紹

##Stringbuffer類別

用來產生字串緩衝器

與

String

差別為

Mether

字詞都修改意涵而不是查詢等等

類別方法

append 將值插入字串緩衝區的尾端

insert 將字串插入字串緩衝區某個位置

delete 將字串

replace

查文件有更多 更詳細

###案例 java12_8.java

宣告字串緩衝器s1

System.out(靜態方法)println(方法)印出 s1 + s1(物件)((方法)查詢長度)

S1(物件)操控增加字串apend(方法)在字串尾加入

使用方法 insert

印出

S1重置 new 值

印出

Replace取代方法

印出

Delete 刪除方法

印出

###\” 為跳脫字元 顯示的是 一個雙引號 避免使用到保留字

package com.example.java;

public class Java12_8 {

	public static void main(String[] args) {
		// TODO 自動產生的方法 Stub.

		StringBuffer s1 = new StringBuffer("我愛學習");
		System.out.println("s1=\"" + s1 + "\",其長度為"+s1.length());
		s1.append("程式設計!");
		System.out.println("s1=\"" + s1 + "\",其長度為"+s1.length());
		s1.insert(4,"java");
		System.out.println("s1=\"" + s1 + "\",其長度為"+s1.length());
		
		System.out.println();
		
		s1 = new StringBuffer("我愛學習java程式設計!");
		System.out.println("s1=\"" + s1 + "\",其長度為"+s1.length());
		s1.replace(4,8,"JAVA");
		System.out.println("s1=\"" + s1 + "\",其長度為"+s1.length());
		s1.delete(4,8);
		System.out.println("s1=\"" + s1 + "\",其長度為"+s1.length());
		
		
	}

}

#下午物件導向函式觀念

##先弄java 迴圈作業

第一題 多for則複雜度(Time complexity)越高

感覺要挑戰4層比較猛,不過老師的是兩層第二層內做運算

第二題老師用break做停止 好像也是低複雜度的

第三題這次用!= 不等於然後有用while

階段性作業3

 利用課堂教學之IO輸出與輸入、邏輯控制敘述、迴圈結構等Java語法,完成所要求之程式功能設計:

1. For 迴圈,達成列印 99 乘法表的功能

 使用For 迴圈,列印出99乘法表

 自行設定迴圈所需的控制變數與條件關係式

 參考輸出格式如下圖

    package com.example.java;

    import java.util.Scanner;

    public class Java_homework3_1 {

    public static void main(String[] args) {
            // TODO 自動產生的方法 Stub. 



    //第一題 多for
    //則複雜度(Time complexity)
    //越高 感覺要挑戰 4層比較猛 不過老師的是三層

    //for(int x=1;x<=9;x++){for(int y=1;y<=9;y++){for(int z=1;z<=3;z++){ for(int t=1;t<=3;t++){System.out.println(z);
    //}}}}

    //老師版本第一題

        for (int i = 1; i <= 9; i += 3) {for (int j = 1; j <= 9; j++) {System.out.print(i + "x" + j + "=" + i * j + "\t");
        System.out.print((i + 1) + "x" + j + "=" + (i + 1) * j + "\t");
        System.out.println((i + 2) + "x" + j + "=" + (i + 2) * j);
        }System.out.println("----------------------");
        }


    }
    }

2. 使用 for 迴圈,算出小於等於 N 的所有質數

 需利用輸出與輸入功能提示使用者輸入變數N

 使用For 迴圈,依據變數N列印出乘法表

 自行設定迴圈所需的控制變數與條件關係式質數指在大於1的数中,除了1和該数自身外,無法被其他自然数整除

 參考輸出格式如下圖

    package com.example.java;

    import java.util.Scanner;

    public class Java_homework3_2 {

    public static void main(String[] args) {
            // TODO 自動產生的方法 Stub. 

        //老師做第三題用!=不等於然後有用while

            int t1, t2, t3 = 0 ,t4;
            boolean isPrimeNo;
            Scanner t5 = new Scanner(System.in);

            System.out.println("輸入整數  >>");
            t4 = t5.nextInt();

            t1 = 2;
            System.out.print("小於等於"+t4+"質數有:");
            while (t1 <= t4) {isPrimeNo = true;t2 = 2;
            do {if (t1 != 2 && t1 % t2 == 0) {isPrimeNo = false;break;
            }t2++;
            }while (t2 <= (t1 - 1));
            if(isPrimeNo == true){t3++;
            System.out.print(t1 + ",");
            }t1++;
            }System.out.print("共計" + t3 + "個質數");

            t5.close();
    }
    }

3. 使用 while 迴圈,算出小於等於 N 的所有質數

 需利用輸出與輸入功能提示使用者輸入變數N

 使用while迴圈,依據變數N列印出乘法表

 自行設定迴圈所需的控制變數與條件關係式

 質數指在大於1的数中,除了1和該数自身外,無法被其他自然数整除

 參考輸出格式如下圖

    package com.example.java;

    import java.util.Scanner;

    public class Java_homework3_3 {

    public static void main(String[] args) {
            // TODO 自動產生的方法 Stub. 



        //老師做第三題用!=不等於然後有用while

                int t1, t2, t3 = 0 ,t4;
                boolean isPrimeNo;
                Scanner t5 = new Scanner(System.in);

                System.out.println("輸入整數  >>");
                t4 = t5.nextInt();

                t1 = 2;
                System.out.print("小於等於"+t4+"質數有:");
                while (t1 <= t4) {isPrimeNo = true;t2 = 2;
                do {if (t1 != 2 && t1 % t2 == 0) {isPrimeNo = false;break;
                }t2++;
                }while (t2 <= (t1 - 1));
                if(isPrimeNo == true){t3++;
                System.out.print(t1 + ",");
                }t1++;
                }System.out.print("共計" + t3 + "個質數");

                t5.close();
    }
    }

#函式

成員函數 物件導向內稱為 方法 method

##優點

模組化 可重複呼叫 節省成本

只需要給參數即可達到那個函數的結果

不用知道函數的內容

簡化程式碼

容易除錯維護(因為呼叫的功能是人家除錯完畢的,只要注意自己的程式碼即可

光是多型內就有很多不同參數版本原因是本來就

底層需要考慮字串串不同型態的資料

但藉由函式不同的多型即可已簡化很多行底層程式碼

充分發揮資訊隱藏

(可以自己決定是否隱藏具有類似權限的功能

除非將二進位碼反組譯否則隱藏性很高

、多載

、改寫

然後因為以上特性所以一定有文件可以看,否則其他人根本不知道怎用

Override等物件導向特性

以前不是物件導向時就有函數了稱為funtion

##函式存取概念 ( 類似權限

Public公開

內部外部任一個class皆可存取

Private私有

同一個內部class才可存取

Protected保護

同一個package內部的class才可存取,不同的package要有繼承才可存取

Previous2017/0506/Bs_FlexBox&Asp.Net_MVC_View+Razor@+Viewbag+helperNext2019/0508/Asp.Net_MVC_Model_ADO.NET+Entityframework+LoginMember實作+MVC觀念

Last updated 6 years ago

Was this helpful?