Java-類與對象

Java,從一開始學習這門技術,我們就被注入了一個概念——“Java是一門面向對象編程語言。”是的,Java之所以簡單而具有優勢,就是因為面向對象所帶來的方便。這種方式免去了C++ 中反復而難以理解的指針和多繼承,“可以讓程序員以優雅的思維方式進行復雜的編程”。而這之中最為核心也是最基礎的部分就是類與對象。
一、對象
作為Java語言中最基礎的東西,我們有必要了解一下對象的概念。實際上生活中我們接觸的所有東西都可以被稱作為一個對象。比如你正在使用的瀏覽這篇文章的電子設備、你手邊正在被你使用的那個鼠標、我正在敲的鍵盤等,全都是對象。對象不是一個籠統的,類似于“桌子”、“椅子”這種代表一類事物的概念,而是類似于“那張桌子”、“這把椅子”這樣的具體的某一個事物。這就是對象。

二、類
類相當于之前我們所說的那個“籠統的概念”,就是具有共同特征的某一類東西。比如“桌子”、“電腦”、“顯卡”等。而類和對象的關系也很簡單——類是模板,對象是實物。

類的格式如下:

public class 類名(){//屬性訪問修飾符 數據類型 變量名;//方法訪問修飾符 返回值類型 方法名(數據類型 參數名,...){}}

三、類的屬性和方法
1、屬性

類的屬性就是我們在描述某個東西時所指出的這個東西的特點。

比如我們描述筆記本電腦,那么我們基本上會用“品牌”、“顏色”、“內存大小”、“顯卡類型”等幾個特點來描述它。那么如果這個時候我們把“筆記本電腦”當做一個類的話,那么它的屬性就是剛才我們所指出的那幾個特點。

2、方法

所謂方法,就是指一類事物的用途、行為或者功能。

還是以剛才我們說的筆記本電腦為例。那么筆記本電腦的用途比如“寫文章”、“學習”、“玩LOL”等,就是筆記本電腦這個類的方法。我們可以在程序中去調用這些方法以達到我們的目的。

3、構造方法

在Java中,任何變量在被使用前都必須先設置初值。Java提供的為類的成員變量賦初值的專門方法,就是構造方法。構造方法會在對象被實例化的時候被調用。

注意:構造方法名必須與類名完全一致;構造方法沒有返回值類型,連“void”也沒有;如果你沒有在一個類中定義構造方法,java會自動提供一個沒有任何形參的默認的構造方法。

這里我們定義一個簡單的“學生類”

public class Student{private String name;//姓名屬性,私有private int age;//年齡屬性,私有private int score;//學分屬性,私有/***構造函數,讀取姓名和年齡屬性*/public Student(String name,int age){this.name = name;this.age = age;}/***定義一個學習方法。每學習一次學分加1*/public void study(){score++;System.out.println(name+"正在學習中,學分是"+score);}
}

這就是一個簡單的類了。

四、方法重載
有些時候我們可以發現在特定的情況下有些對象會有一些其他對象沒有的屬性,這就導致有些類沒辦法通用。而再重新為這僅有的幾個對象建立一個類會比較麻煩,這種情況我們就需要用到方法的重載。

1、構造方法的重載

中國古典名著《西游記》中的孫悟空是從石頭里跳出來的,而其他所有人都是有父有母。這種情況下我們可以視為孫悟空的屬性和其他人物不一樣,這就需要在實例化孫悟空這個對象時加入一個不一樣的參數。

2、普通方法的重載

每個人都需要吃東西,但是早中晚三餐吃的東西不一樣。我們就需要對“吃”這個方法進行重載。

3、方法重載的條件:

方法名必須要完全一致;參數不同(個數、類型、順序至少有一個不同)。

五、this關鍵字
1、當參數名和屬性名相同的時候,Java會采用就近原則優先使用參數;如果要區分開來,那么可以使用this來區分,加上this.的表示屬性,否則表示參數。

2、this(參數值,…);調用當前類中對應參數的構造方法。

注意:this表示當前調用的方法的對象。誰在調用方法,那么方法中的this就表示該對象。

我們現在看一下如何實現方法的重載

public class Student{private String name;//姓名屬性,私有private int age;//年齡屬性,私有private int score;//學分屬性,私有/***構造函數,讀取姓名和年齡屬性*/public Student(String name,int age){this.name = name;this.age = age;System.out.println("有參數的構造方法");}/***構造方法的重載*/public Student(){System.out.println("沒有參數的構造方法");}/***定義一個學習方法。每學習一次學分加1*/public void study(){score++;System.out.println(name+"正在學習中,學分是"+score);}public void study(String book){System.out.println(name+"正在學習《"+book+"》中的內容");
}
}

定義一個用于運行的有主函數的類

public class manager{public static void main(String[] args) {Student stu = new Student("張三",18);//實例化一個對象for(int i=0;i<=5;i++){stu.study();//學習六次}stu.study("數字電路與模擬電路");//學習方法的重載}
}

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

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

相關文章

Hibernate學習筆記(一)

####1.1Hibernate框架的學習路線?第一天&#xff1a;Hibernate的入門&#xff08;Hibernate的環境搭建、Hibernate的API、Hibernate的CRUD&#xff09;?第二天&#xff1a;Hibernate的一級緩存、其他的API?第三天&#xff1a;Hibernate的一對多配置、Hibernate的多對多的配置…

Java-進階:Java-File--IO—1

#目錄 一、File 類 二、IO流 三、字節輸出流 四、字節輸入流 五、字節流文件復制 六、字符輸出流 七、字符輸入流 八、字符流復制文本文件 ##一、File 類 ###1. 概述 文件 和 目錄路徑名 的抽象表達形式 Java中把文件或者目錄&#xff08;文件夾&#xff09;都封裝成 File對象…

北理工爬蟲課程學習記錄

Requests post方法如果提交字典會被存到form下&#xff0c;如果直接提交字符串&#xff0c;會被存到data下 put方法和post類似&#xff0c;只不過他會覆蓋原始數據 ###各個方法的使用### 13個 訪問參數 url修改的字段 //模擬瀏覽器進行訪問 //模擬不同的IP地址對這個網站進行訪…

Java-進階:Java-File--IO—2

目錄 一、轉換流 二、字節緩沖流 三、字符緩沖流 四、序列化流與反序列化流 五、打印流 六、標準輸入、輸出流 七、IO流總結 一、轉換流 1. OutputStreamWriter 類 &#xff08;1&#xff09; 概述 java.io.OutputStreamWriter繼承 Writer類&#xff1b;就是一個字符輸出流…

Hibernate學習筆記(二)

Hibernate概述&#xff1a; 什么是Hibernate:是一個持久層的ORM的框架 什么是ORM: ORM:對象關系映射,指的是將一個java中的對象與關系型數據庫中的表建立一種映射關系&#xff0c;從而操作對象就可以完成數據庫的相關操作為什么學習Hibernate 簡化JDBC的開發 性能很好Hibernate…

Java-進階:多線程1

目錄 一、概述 二、Thread 類 三、創建線程&#xff1a;繼承 Thread 類 四、創建線程&#xff1a;實現 Runnable 接口 五、線程優先級 六、線程的生命周期 七、同步代碼塊 一、概述 1. 進程和線程 進程&#xff1a;進程指正在運行的程序。線程&#xff1a;線程是進程中的一個…

Struts2學習筆記(一)--入門常見配置

Struts2框架的學習路線 l 第一天&#xff1a;Struts2的概述、Struts2的入門、Struts2常見的配置、Struts2的Action的編寫 l 第二天&#xff1a;Struts2的數據的封裝、結果頁面配置 l 第三天&#xff1a;Struts2的值棧和OGNL表達式 l 第四天&#xff1a;Struts2的標簽庫 Struts2…

Java-進階:多線程2

目錄 一、Lock 接口 二、線程間的通信 三、線程池 四、定時器 Timer 五、多線程和異常 一、Lock 接口 1. 線程鎖 鎖是控制多個線程對共享資源進行訪問的工具。通常&#xff0c;鎖提供了對共享資源的獨占訪問。一次只能有一個線程獲得鎖&#xff0c;對共享資源的所有訪問…

Java周總結1

一、計算機高級編程語言類型&#xff1a; a.編譯型 b.解釋型 Hello.java Java源文件 編譯 Hello.class 字節碼文件 解釋 01101100.... &#xff08;二進制&#xff09;機器碼指令 computer…

MMKV集成與原理,先收藏了

標準文檔流 標準文檔流&#xff0c;指的是元素排版布局過程中&#xff0c;元素會默認自動從左往右&#xff0c;從上往下的流式排列方式。前面內容發生了變化&#xff0c;后面的內容位置也會隨著發生變化。 HTML就是一種標準文檔流文件 HTML中的標準文檔流特點通過兩種方式體現…

Java周總結3

撰寫第三周課程總結及實驗報告&#xff08;一&#xff09; Java實驗報告 班級 計科一班 學號 20188375 姓名 湯云云 完成時間 評分等級 實驗一 Java開發環境與簡單Java程序 一、 實驗目的 &#xff08;1&#xff09; 熟悉JDK開…

MMKV集成與原理,吊打面試官系列!

前言 校招 -1 年 這個階段還屬于成長期&#xff0c;更需要看重的是你的基礎和熱情。對于 JS 基礎&#xff0c;計算機基礎&#xff0c;網絡通信&#xff0c;算法等部分的要求會相對高一些。畢竟這個階段比較難考察你的業務項目中的沉淀&#xff0c;所以只能從基礎部分入手考察。…

CV2攝像頭人臉、人眼、微笑等檢測

import cv2face_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_frontalface_default.xml)#人臉 eye_cascade cv2.CascadeClassifier(cv2.data.haarcascades haarcascade_eye.xml)#人眼 smile_cascadecv2.CascadeClassifier(cv2.data.haarcascades haa…

MMKV集成與原理,成功跳槽阿里!

前言 在初學前端的時候&#xff0c;我們總會遇到一些問題&#xff0c;我們可以在網上看到很多關于前端的這些問題&#xff1a; 你們都是怎么學web前端的&#xff1f; 零基礎&#xff0c;怎么自學好前端&#xff1f; 前端需要學多久&#xff0c;都學哪些知識&#xff1f; 想成為…

第四周課程總結試驗報告(二)

Java實驗報告 實驗二 Java簡單類與對象 一、 實驗目的 &#xff08;1&#xff09; 掌握類的定義&#xff0c;熟悉屬性、構造函數、方法的作用&#xff0c;掌握用類作為類型聲明變量和方法返回值&#xff1b; &#xff08;2&#xff09; 理解類和對象的區別&#xff0c;掌握構造…

MMKV集成與原理,薪資翻倍

畢業工作一年之后&#xff0c;有了轉行的想法&#xff0c;偶然接觸到程序員這方面&#xff0c;產生了濃厚且強烈的興趣&#xff0c;開始學習前端&#xff0c;成功收割了大廠offer&#xff0c;開始了我的程序員生涯。 在自學過程中有過一些小廠的面試經歷&#xff0c;也在一些小…

Spring入門與常用配置

什么是Spring Spring&#xff1a;SE/EE開發的一站式框架。 一站式框架&#xff1a;有EE開發的每一層解決方案。 WEB層 &#xff1a;SpringMVC Service層 &#xff1a;Spring的Bean管理&#xff0c;Spring聲明式事務 DAO層 &#xff1a;Spring的Jdbc模板&#xff0c;Spring的ORM…

MMKV集成與原理,詳細學習指南

前言 本文主要是javascript和css方面的基礎面試題&#xff0c;適合面試前以及平時復習食用。 基礎知識是前端一面必問的&#xff0c;如果你在基礎知識這一塊翻車了&#xff0c;就算你框架玩的再6&#xff0c;webpack、git、node學習的再好也無濟于事&#xff0c;因為對方就不…

第五周課程總結實驗報告(三)

實驗三 String類的應用 一、實驗目的 &#xff08;1&#xff09; 掌握類String類的使用&#xff1b; &#xff08;2&#xff09; 學會使用JDK幫助文檔&#xff1b; 二、實驗內容 1.已知字符串&#xff1a;"this is a test of java".按要求執行以下操作&#xff1a;&a…

MMKV集成與原理,趕緊學起來

開頭 Web前端開發基礎知識學習路線分享&#xff0c;前端開發入門學習三大基礎&#xff1a;HTML、CSS、JavaScript。除此之外還要學習數據可視化、Vue、React、Angular相關框架&#xff0c;熟練運用框架提升開發效率&#xff0c;提升穩定性。 [外鏈圖片轉存失敗,源站可能有防盜…