【Java】初階篇#4:物件導向

本文是系列文章「Java 初階篇」的第四章,介紹物件導向程式設計。 物件導向程式設計(Object Oriented Programming)是一種具有物件概念的程式設計典範,我們真實世界中的事物都可以抽象化為物件,例如鍵盤、汽車、畫筆等等,在腦子裡描述物件的這個過程就是抽象化。物件導向程式設計的優點大致有程式易讀易懂、易維護、支持更大的系統、多人合作等等。 1. 封裝 把某事物抽象化為物件之後,裡面有些資訊想要隱藏起來不給外部使用,只公開一些方法讓外部使用。 例如: class 蛋糕販賣機{ private int 蛋糕數量; ...... private boolean 會員確認(會員卡、密碼){ ...... } private void 投出蛋糕(){ ...... } public void 買蛋糕(會員卡、密碼){ if(會員確認(會員卡、密碼) == true) 投出蛋糕(); ...... } public void 查詢會員(會員卡、密碼){ ...... } ...... } 利用修飾子 private、public,把各內容做公開或隱藏,讓使用者只能使用某些方法。 1.1 存取修飾子 public:公開,任何人都可存取。 protected:保護,只有該類別的子類別才可存取。 no modifier:預設,只有同一個 package 之中的類別才可存取。 private:私有,只有自己類別的成員才可存取。 比較表: Class Package Subclass(same pkg) Subclass(diff pkg) World public V V V V V protected V V V V X no modifier V V V X X private V X X X X via stackoverflow ...

July 17, 2024 · Lodur46

【Java】初階篇#3:基礎語法

本文是系列文章「Java 初階篇」的第三章,開始認識基礎語法。 1. Variable, Assignment 變數(Variable)、賦值(Assignment)是任何程式語言的基本概念。 int x; // 資料型態 變數名稱 x=5; // 將值指定給變數 int x = 5; // 可以寫成一行 變數的值可改變,例如int x = 10。 在 Java 中=(等號)是賦值的意思,將等號右邊的值放到等號左邊,例如: public class Main { public static void main(String[] args) { int x = 5; x = x + 1; System.out.println(x); } } 輸出結果: 6 語法糖:x = x + 1可縮寫成x += 1。 變數名稱不能是數字開頭、不能是 Java 關鍵字。 常量(Constants):指定義不能改變的量。加入 final 就可以設定 Constants Variable,例如: public class Main { public static void main(String[] args) { final double PI = 3.14; } } 加入 final 後,PI 則不能被改變。 ...

July 16, 2024 · Lodur46

【Java】初階篇#2:基礎概念

本文是系列文章「Java 初階篇」的第二章,著重於基礎概念的建立。 1. 初探 Java 程式 建立第一個 Java 程式,取名為Main.java,並輸入以下程式碼: class Main { /* 我是第一支Java程式 我會顯示出文字:Hello World! */ public static void main(String[] args) { System.out.println("Hello World!"); // 顯示出文字:Hello World! } } 執行結果: Hello World! 1.1 類別 類別(Class)名需要與檔名一樣,必須是以大寫英文字母開頭,例如類別Main與檔名Main.java。 class Main { } 1.2 程式進入點 JVM 執行程式時,會先找程式進入點(Program Entry),而且規定必須是public static void main(String[] args)。 public static void main(String[] args) { } public:公開,表示此方法為公開。 static:靜態,表示程式執行前,需要把這些內容載入到記憶體。 void:此處為回傳值的型態,void 表示沒有回傳值。 main:表示程式進入點的名稱,JVM 規定一定要取名「main」。 String[] args:JVM 規定 main 接受字串陣列當做參數。 String[]:表示字串陣列。 args:表示字串陣列的變數名稱。 重點: ...

June 15, 2024 · Lodur46

【Java】初階篇#1:介紹

Java 是一種程式設計語言,擁有跨平台、物件導向等特性,本系列文章是分享我學習 Java 的筆記內容。 1. Java 是什麼? Java 是一種程式設計語言,廣泛使用於 Web 應用開發、企業軟體、行動應用程式、大數據應用程式、伺服器端技術等等,擁有跨平台、物件導向、泛型程式設計等特性。最早是由昇陽電腦的詹姆斯·高斯林等人於 1990 年代所開發,於 1995 年 5 月以 Java 的名稱正式釋出,隨後跟著 www 全球資訊網的浪潮開始蓬勃發展。 重點: Java 最早由昇陽電腦開始研究,於 1994 年完成。 Java 之父:James Gosling。 Oracle 於 2009 年收購昇陽電腦,從此 Java 成為 Oracle 的產品。 目前 Java 提供三版本:企業版 Java EE、標準版 Java SE、微型版 Java ME。 2. Java 的特性 2.1 物件導向 Java 程式的最小單位是物件,物件透過方法(method)執行功能。物件導向設計使軟體工程更容易管理、增加工程健康度、減少工程失敗度。 2.2 跨平台性 Java 程式經過編譯後不用再做任何更改,就能在任何硬體裝置條件下執行,關鍵在於名叫 JVM (Java Virtual Machine)的 Java 執行環境,Java 的資料型態在 JVM 上具有一致性,不會因為作業系統的不同,而產生不同的結果。 .java(Java 程式) –> 編譯器(Compiler) –> .class(位元碼) –> JVM –> 解析.class –> 向作業系統取得資源 –> 執行命令。 ...

June 11, 2024 · Lodur46

【JavaScript】基礎篇

JavaScript(縮寫 JS)是一種開發人員用來建立互動式網頁的程式設計語言,可以提升使用者體驗,這篇文章是我學習 JavaScript 的筆記內容。 1. JavaScript 入門 1.1 JavaScript 簡介 JavaScript(縮寫 JS)是一門基於原型和頭等函式的多範式進階直譯程式語言,它支援物件導向程式設計、指令式編程和函數式程式設計。 【範例:印出 Hello World!】 打開.html文件,在<body>標籤內,新增<script>標籤,並在內輸入console.log("Hello World!");。 <script>console.log("Hello World!");</script> 開啟瀏覽器,進入開發人員工具,即可在 Console 頁面中看到輸出結果:Hello World!。 【註解】 單行註解: // 註解 多行註解: /* 註解 註解 */ 1.2 資料、資料型態 數字: 3; 3.14; -3; 字串: ("hello!"); 布林值: true; false; 空值: null; 未定義: undefined; 1.3 變數、常數 1.3.1 變數 輸出 undefined: let x; console.log(x); 輸出 10: x = 10; console.log(x); 輸出 true: x = true; console.log(x); 輸出 null: x = null; console.log(x); 輸出 hello: ...

March 29, 2024 · Lodur46

【CSS】基礎篇

CSS(Cascading Stylesheets,階層樣式表)是一種樣式表語言,用來打造網站的樣式風格。例如段落文字用藍色、標題文字用紅色、段落置中、背景圖片排列等等,這篇文章是我學習 CSS 的筆記內容。 1. CSS 簡介 CSS(Cascading Stylesheets,階層樣式表):設定網頁的樣式及佈局。 DOM Tree(Document Object Model,文件物件模型):網頁的樹狀表示。 Parent Node:Child Node 的父元素(Parent Element)。 Child Node:Parent Node 的子元素(Child Element)。 CSS 屬性可至CSS reference查詢。 CSS comment 語法:/**/。 /* 我是註解 */ CSS 可寫在<style>內,例如: <style> /* selector */ h1 { color: red; } h2 { color: green; } </style> 2. CSS 放置位置 inline styling:跟 HTML 寫在同一行,優先層級最高,但只能對特定標籤設定。 <h1 style="color: red">我是標題</h1> internal styling:把 HTML 與 CSS 放在同一個文件當中,方便撰寫,但多個頁面難以維護。 <style> h1 { color: red; } h2 { color: green; } </style> external styling:多個 HTML 文件可連接同一個 CSS 文件,容易維護。 <head> <link rel="stylesheet" href="./style.css" /> </head> 3. CSS 顏色設定 Color Keywords:關鍵字,如 red、black……。 h1 { color: green; } rgb:光學三原色,數值 0~255,共 256 種不同選擇。 h1 { color: rgb(247, 11, 11); } rgba:同 rgb,但多一個 alpha 儲存透明度,數值 0~1。 h1 { color: rgba(154, 53, 53, 0.632); } hex:十六進制數字代表顏色,數值 0、1、2、……9、A、B、……F。 h2 { color: #ffffff; } HSL:色相、飽和度、亮度。 4. Selectors Universal Selector:匹配任何類型的 HTML element。 * { color: blue; } Element Selector:選擇特定的 HTML element。 h2 { color: blue; } ID Selector:選擇有特定 ID 屬性的 HTML element。 #dog4 { color: blue; } Class Selector:選擇所有特定 class 屬性的 HTML element。 .animal4 { color: blue; } Grouping Selector:一次選擇所有數個 HTML 元素,並逗號分隔。 h1, h2, h3, h4, h5, h6 { color: blue; } Descendant Selector:兩個或多個用空格分隔的選擇器組成。 div.animal4 a { color: blue; } Attribute Selector:選擇所有具有相同屬性的 HTML 元素。 input[type="text"] { color: blue; } 5. Pseudo class、element pseudo-class:指定所選元素的特殊狀態。 input[type="text"]:hover { color: red; } pseudo-element:添加選擇器的關鍵字,設置所選元素的特定部分樣式。 p::before { content: ">>"; color: blue; } 6. CSS 重點概念 Inheritance(繼承)。 Conflicting Styling(樣式衝突)。 Priority 優先順序:Inline Styling、User Stylesheet、User Agent Stylesheet、Inheritance。 CSS 選擇器有不同的 specificities(特定度):id【specificities(1, 0, 0)】、class【specificities(0, 1, 0)】、tag【specificities(0, 0, 1)】。 Order Rule(順序規則):有相同的 specificity 的選擇器時,後寫的選擇器樣式會覆寫前面寫的樣式。 放在後面的<link>stylesheet,會覆寫放在前面的<link>stylesheet。 7. CSS 單位 absolute units:有預設數值或現實生活定義的單位。 relative units:相對於某數值的單位。 8. font 設定 文字樣式 text styling:font-size(字體大小)、text-align(水平對齊)、text-decoration(裝飾線外觀)、line-height(文字行距)、letter-spacing(文字水平間距)、font-family(字體優先列表)、text-indent(段落內縮長度)、font-weight(粗體字)。 9. 背景設定 background-color:背景顏色。 background-image:背景圖片。 background-size:背景尺寸。 background-position:背景圖片位置。 background:背景各種設定的 shorthand 設定。 10. Box Model block element 被視為一個 box,box 是由 margin、border、padding、content 組成。 content:顯示內容的區域。 padding:content 周圍的區域,在 content 與 border 之間。 margin:border 以外的區域。 border 可特別設定 border-radius 屬性。 11. width、height、overflow width:指定元素的寬度。 height:指定元素的高度。 width 可設定%,但 height 不行。 visible:content 不會被修剪,可呈現在元素框外,此為預設值。 hidden:內容會被剪裁以適合元素,不顯示滾動條。 scroll:內容將被剪裁以適合填充框,顯示移動軸。 overflow-x、overflow-y 可設定特定方向的 overflow 屬性。 12. content-box 預設 box-sizing 屬性為 content-box。 13. border-box border-box:width、height 屬性包括內容 content、內邊距 padding、邊框 border,但不包括外邊距 margin。 14. inline-block display:outer display type、inner display type。 outer display type:block、inline、inline-block。 inner display type:flex、grid。 15. Position Position:設定元素在文檔中的定位方式,top、right、bottom、left 屬性確定定位元素的最終位置。 Position 可設定的值包括 static/z-index、relative、absolute、fixed、sticky。 16. Stacking Context, Cursor, Table Stacking Context:HTML 元素沿虛擬 Z 軸相對於用戶的 3D 概念化。 表格樣式設定:border-collapse。 響應式表格:overflow-x:auto Opacity:元素的不透明度,0 是完全透明、1 是完全不透明。 Cursor:設定鼠標圖示。 17. Transition Transition 屬性:設定某 CSS 屬性轉換時的 timing function 以及速度。 18. Transform Transform 屬性:旋轉、縮放、傾斜、平移 HTML 元素。 19. Animation Animation 屬性:客製化動畫。

March 23, 2024 · Lodur46

【HTML】基礎篇

HTML(Hypertext Markup Language),中文是「超文本標記語言」,是一種用來組織架構與呈現網頁內容的標記語言,本篇文章是分享我學習 HTML 的筆記內容。 1. HTML 簡介 HTML(HyperText Markup Language),中文是「超文本標記語言」。 超文本是從某網頁連到其他網頁的連結。 HTML 使用標記(markup)來詮釋文字、圖片或其他顯示內容。例如用段落標籤<p>來表示此句子是段落: <p>My cat is very grumpy</p> HTML、CSS、JavaScript 的關係: HTML:骨架。 CSS:衣服。 JavaScript:動作。 2. 製作第一個網頁 下載VS Code,並安裝外掛:Auto Rename Tag、Prettier。 使用 VS Code,儲存一個副檔名為.html的檔案。 在檔案中,先用簡單的標籤撰寫,例如段落標籤<p>: <p>這是段落</p> 儲存檔案後,用瀏覽器開啟.html檔案,即可看到網頁。 3. 標籤、HTML Validator 範例: <p>我的貓 <strong>非常</strong> 可愛。</p> 起始標籤(opening tag):<>,例如<p>。 結束標籤(closing tag):</>,例如</p>。 內容(content):元素的內容,例如「我的貓非常可愛。」。 元素(element):以上三者加起來就是元素 HTML element。 巢狀元素(Nesting elements):把元素放進另一個元素裡面,叫巢套(nesting),例如<strong>...</strong>放進<p>...</p>。 HTML Validator:全球資訊網協會(W3C)提供驗證服務,可以檢查 HTML 檔案是否符合 HTML 標準,檢驗網頁:The W3C Markup Validation Service。 4. 物件導向(Object-Oriented) 屬性(Attributes):就像廠牌、年份、顏色。 行為(Methods):就像直走、左轉、鳴喇叭。 5. HTML Skeleton 沒有 Skeleton(骨架)就無法呈現: <!DOCTYPE html> <html> <head></head> <body></body> </html> 6. HTML Skeleton 2 head:網頁的特定信息,包含 title、script、css……。 body:文檔正文,包含標題、段落、圖片……。 打!可直接生成基本 HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body></body> </html> 打command+/可生成註解: <!-- 我是註解 --> 7. head 標籤 head 內的元素可至HEAD查詢。 比較重要的有:viewport、description、robots、googlebot。 8. h1-h6 標籤 有六種標題元素:<h1>、<h2>、<h3>、<h4>、<h5>、<h6>。 <h1>:代表主標題,最重要的,只能有一個。 <h2>:代表副標題。 <h3>:代表更次級的副標題 <h6>:最不重要的副標題。 HTML 標籤是定義架構,不是樣式。 9. p 標籤、anchor tags <p>:段落,HTML 會自動加空行。 <a>:超鏈接。 常用標籤可至MDN查詢。 10. img 標籤、絕對路徑與相對路徑 <img>:圖片。 絕對路徑:使用完整的 URL。 相對路徑:連結到相對於目前文件的檔案。.代表目前 html 文件所在資料夾位置,..代表上層的資料夾位置。 11. ul 與 ol 標籤 <ul>:無序清單。 <ol>:有序清單。 12. block, inline block elements:在頁面中組成區塊,例如:<div>。 inline elements:是指放在 block elements 中的內容,例如:<a>。 13. 表格製作 製作表格需要用到標籤<table>、<tr>(每一行)、<th>(標題單元格)、<td>(數據)。 colspan 定義跨越列數,rowspan 定義跨越行數。 選擇性使用的標籤:<thead>、<tbody>、<tfoot>。 14. 表單製作 form action:定義數據發送地。 form method:告訴瀏覽器如何將數據發送到伺服器。 15. GET, POST GET:把數據發送到 action 指定的 URL。 POST:隱藏資料或向伺服器寄送被儲存的資料。 16. checkbox, email, file input type: ...

February 20, 2024 · Lodur46