自學Java-面向對象編程入門

自學Java-面向對象編程入門

  • 一、靜態方法的注意事項
  • 二、簡易版電影信息展示系統
    • 1、測試類
    • 2、電影類
    • 3、電影操作類

一、靜態方法的注意事項

1、靜態方法中可以直接訪問靜態成員,不可以直接訪問實例成員
2、實例方法中既可以直接訪問靜態成員,也可以直接訪問實例成員
3、實例方法中可以出現this關鍵字,靜態方法中不可以出現this關鍵字的

package com.itheima.staticmethod;public class Test4 {// 靜態變量public static int count = 100;public static void printHelloWorld2(){System.out.println("HelloWorld!");}// 實例變量:屬于對象的。private String name;// 實例方法public void run(){}public static void main(String[] args) {// 目標:搞清楚靜態方法,實例方法訪問的幾點注意事項。printHelloWorld();}// 1、靜態方法中可以直接訪問靜態成員,不可以直接訪問實例成員。public static void printHelloWorld(){System.out.println(count);printHelloWorld2();// System.out.println(name); // 報錯// run(); // 報錯// System.out.println(this); // 報錯,this代表的只能是對象。}// 2、實例方法中既可以直接訪問靜態成員,也可以直接訪問實例成員。public void go(){System.out.println(count);printHelloWorld2();System.out.println(name);run();}// 3、實例方法中可以出現this關鍵字,靜態方法中不可以出現this關鍵字。public void eat(){System.out.println(this);}
}

二、簡易版電影信息展示系統

需求:
1、展示系統中的全部電影信息(每部電影展示:名稱、價格)
2、允許用戶根據電影編號(id)查詢出某個電影的詳情信息

目標:
使用所學的面向對象編程實現以上2個需求

1、測試類

package com.itheima.demo;public class Test {public static void main(String[] args) {// 目標:完成面向對象的綜合小案例// 1、設計電影類Movie,以便創建電影對象,封裝電影數據// 2、封裝系統中的全部電影數據。(自己造一些數據)Movie[] movies = new Movie[6];movies[0] = new Movie(1, "《星際穿越》", 9.6, "安妮·海瑟薇");movies[1] = new Movie(2, "《速度與激情7》", 9.2, "博納爾·羅伯森");movies[2] = new Movie(3, "《Transformers:天際線》", 9.1, "吉姆·羅恩");movies[3] = new Movie(4, "《速度與激情8》", 9.1, "博納爾·羅伯森");movies[4] = new Movie(5, "《速度與激情9》", 9.1, "博納爾·羅伯森");movies[5] = new Movie(6, "《速度與激情10》", 9.1, "博納爾·羅伯森");// 3、創建電影操作對象出來,專門負責電影數據的業務操作MovieOperator mo = new MovieOperator(movies);mo.printAllMovies(); // ALT + 回車mo.searchMovieById();}
}

2、電影類

package com.itheima.demo;public class Movie {private int id; // 編號private String name;private double price;private String actor;// 定義一個無參數構造器public Movie() {}// 定義一個有參數構造器public Movie(int id, String name, double price, String actor) {this.id = id;this.name = name;this.price = price;this.actor = actor;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getActor() {return actor;}public void setActor(String actor) {this.actor = actor;}
}

3、電影操作類

package com.itheima.demo;import java.util.Scanner;// 電影操作類
public class MovieOperator {private Movie[] movies; // 記住一個電影對象的數組public MovieOperator(Movie[] movies) {this.movies = movies;}// 打印全部電影信息public void printAllMovies() {System.out.println("編號\t電影名\t價格\t主演");for (int i = 0; i < movies.length; i++) {Movie m = this.movies[i];System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t");}}// 根據id查詢電影public void searchMovieById() {System.out.println("請輸入要查詢的電影編號:");Scanner sc = new Scanner(System.in);int id = sc.nextInt();// 遍歷每個電影對象for (int i = 0; i < movies.length; i++) {// 拿到當前遍歷的電影對象Movie m = this.movies[i];// 判斷當前電影對象的id是否是我們正在找的電影id,是則打印出該電影并立即結束方法。if (m.getId() == id) {System.out.println(m.getId() + "\t" + m.getName() + "\t" + m.getPrice() + "\t" + m.getActor() + "\t");return;}}System.out.println("沒有找到該電影!");}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894783.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python算法和數據結構刷題[3]:哈希表、滑動窗口、雙指針、回溯算法、貪心算法

回溯算法 「所有可能的結果」&#xff0c;而不是「結果的個數」&#xff0c;一般情況下&#xff0c;我們就知道需要暴力搜索所有的可行解了&#xff0c;可以用「回溯法」。 回溯算法關鍵在于:不合適就退回上一步。在回溯算法中&#xff0c;遞歸用于深入到所有可能的分支&…

【自學筆記】Python的基礎知識點總覽-持續更新

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 Python基礎知識總覽1. Python簡介2. 安裝與環境配置3. 基本語法3.1 變量與數據類型3.2 控制結構3.3 函數與模塊3.4 文件操作 4. 面向對象編程&#xff08;OOP&#…

文件上傳到騰訊云存儲、簽名及設置過期時間

將文件上傳到騰訊云對象存儲&#xff08;COS&#xff0c;Cloud Object Storage&#xff09;可以通過騰訊云提供的 SDK 實現。以下是詳細的步驟和示例代碼&#xff0c;幫助您完成文件上傳操作。 步驟 注冊騰訊云賬號并創建存儲桶&#xff1a; &#xff08;1&#xff09;登錄騰訊…

基于Java(SpringBoot)+MySQL+Vue實現的平行志愿錄取系統

基于spring bootvue實現的平行志愿錄取系統 1.項目簡介 這兩天干上高考出成績&#xff0c;有不少親戚家的孩子今年高考&#xff0c;和我詢問關于報志愿的問題。老家河北今年是采用所謂的平行志愿。我看了很多的資料才明白什么叫所謂的“平行志愿”。 整個流程好像很是復雜。…

chrome瀏覽器chromedriver下載

chromedriver 下載地址 https://googlechromelabs.github.io/chrome-for-testing/ 上面的鏈接有和當前發布的chrome瀏覽器版本相近的chromedriver 實際使用感受 chrome瀏覽器會自動更新&#xff0c;可以去下載最新的chromedriver使用&#xff0c;自動化中使用新的chromedr…

Redis常見數據類型與編碼方式

??前言?? 本小節圍繞Redis中常見的數據類型與編碼方式展開。 &#x1f349;歡迎點贊 &#x1f44d; 收藏 ?留言評論 &#x1f349;博主將持續更新學習記錄收獲&#xff0c;友友們有任何問題可以在評論區留言 &#x1f349;博客中涉及源碼及博主日常練習代碼均已上傳GitHu…

win編譯openssl

一、perl執行腳本 1、安裝perl腳本 perl安裝 2、配置perl腳本 perl Configure VC-WIN32 no-asm no-shared --prefixE:\openssl-x.x.x\install二、編譯openssl 1、使用vs工具編譯nmake 如果使用命令行nmake編譯會提示“無法打開包括文件: “limits.h”“ 等錯誤信息 所以…

【Kubernetes Pod間通信-第2篇】使用BGP實現Pod到Pod的通信

Kubernetes中Pod間的通信 本系列文章共3篇: 【Kubernetes Pod間通信-第1篇】在單個子網中使用underlay網絡實現Pod到Pod的通信【Kubernetes Pod間通信-第2篇】使用BGP實現Pod到Pod的通信(本文介紹)【Kubernetes Pod間通信-第3篇】Kubernetes中Pod與ClusterIP服務之間的通信…

< 自用文兒 > 下載 MaxMind GeoIP Databases 對攻擊的 IP 做 地理分析

起因 兩個 VPM/VPS&#xff0c;安裝了 fail2ban 去攔截密碼窮舉攻擊。每天的記錄都在增長&#xff0c;以前復制屏幕輸出就行&#xff0c;一屏的內容還容易粘貼出來的。昨天已經過 500 條&#xff0c;好奇 fail2ban 是如何存儲這些內容的&#xff1f;就發現它在使用 SQLite3 數…

SpringCloudGateWay和Sentinel結合做黑白名單來源控制

假設我們的分布式項目&#xff0c;admin是8087&#xff0c;gateway是8088&#xff0c;consumer是8086 我們一般的思路是我們的請求必須經過我們的網關8088然后網關轉發到我們的分布式項目&#xff0c;那我要是沒有處理我們繞過網關直接訪問項目8087和8086不也是可以&#xff1…

C#面試常考隨筆12:游戲開發中常用的設計模式【C#面試題(中級篇)補充】

C#面試題&#xff08;中級篇&#xff09;&#xff0c;詳細講解&#xff0c;幫助你深刻理解&#xff0c;拒絕背話術&#xff01;-CSDN博客 簡單工廠模式 優點&#xff1a; 根據條件有工廠類直接創建具體的產品 客戶端無需知道具體的對象名字&#xff0c;可以通過配置文件創建…

數字人|通過語音和圖片來創建高質量的視頻

簡介 arXiv上的計算機視覺領域論文&#xff1a; AniPortrait: Audio-Driven Synthesis of Photorealistic Portrait Animation AniPortrait&#xff1a;照片級真實感肖像動畫的音頻驅動合成 核心內容圍繞一種新的人像動畫合成框架展開。 研究內容 提出 AniPortrait 框架&a…

數據結構實戰之線性表(三)

目錄 1.順序表釋放 2.順序表增加空間 3.合并順序表 4.線性表之鏈表實現 1.項目結構以及初始代碼 2.初始化鏈表(不帶頭結點) 3.鏈表尾部插入數據并顯示 4.鏈表頭部插入數據 5.初始化鏈表&#xff08;帶頭結點&#xff09; 6.帶頭結點的鏈表頭部插入數據并顯示 7.帶頭結…

Docker使用指南(一)——鏡像相關操作詳解(實戰案例教學,適合小白跟學)

目錄 1.鏡像名的組成 2.鏡像操作相關命令 鏡像常用命令總結&#xff1a; 1. docker images 2. docker rmi 3. docker pull 4. docker push 5. docker save 6. docker load 7. docker tag 8. docker build 9. docker history 10. docker inspect 11. docker prune…

C++基礎day1

前言&#xff1a;謝謝阿秀&#xff0c;指路阿秀的學習筆記 一、基礎語法 1.構造和析構: 類的構造函數是一種特殊的函數&#xff0c;在創建一個新的對象時調用。類的析構函數也是一種特殊的函數&#xff0c;在刪除所創建的對象時調用。 構造順序&#xff1a;父類->子類 析…

嘗試ai生成figma設計

當聽到用ai 自動生成figma設計時&#xff0c;不免好奇這個是如何實現的。在查閱了不少資料后&#xff0c;有了一些想法。參考了&#xff1a;在figma上使用腳本自動生成色譜 這篇文章提供的主要思路是&#xff1a;可以通過腳本的方式構建figma設計。如果我們使用ai 生成figma腳本…

iOS 老項目適配 #Preview 預覽功能

前言 iOS 開發者 最憋屈的就是UI 布局慢,一直以來沒有實時預覽功能,雖然swiftUI 早就支持了,但是目前主流還是使用UIKit在布局,iOS 17 蘋果推出了 #Preview 可以支持UIKit 實時預覽,但是僅僅是 iOS 17,老項目怎么辦呢?于是就有了這篇 老項目適配 #Preview 預覽 的文章,…

【分布式架構理論2】分布式架構要處理的問題及解決方案

文章目錄 1. 應用服務拆分2. 分布式調用3. 分布式協同4. 分布式計算5. 分布式存儲6. 分布式資源管理與調度7. 高性能與可用性優化8. 指標與監控 將分布式架構需要解決的問題按照順序列舉為如下幾步 問題分類具體內容應用服務拆分分布式是用分散的服務和資源代替集中的服務和資…

【PyQt】pyqt小案例實現簡易文本編輯器

pyqt小案例實現簡易文本編輯器 分析 實現了一個簡單的文本編輯器&#xff0c;使用PyQt5框架構建。以下是代碼的主要功能和特點&#xff1a; 主窗口類 (MyWindow): 繼承自 QWidget 類。使用 .ui 文件加載用戶界面布局。設置窗口標題、狀態欄消息等。創建菜單欄及其子菜單項&…

Unity中的虛擬相機(Cinemachine)

Unity Cinemachine詳解 什么是Cinemachine Cinemachine是Unity官方推出的智能相機系統&#xff0c;它提供了一套完整的工具來創建復雜的相機運動和行為&#xff0c;而無需編寫大量代碼。它能夠大大簡化相機管理&#xff0c;提高游戲開發效率。 Cinemachine的主要組件 1. Vi…