Java面向?qū)ο蠡A(chǔ)詳解
一、前言
我們上次學(xué)過java的方法,現(xiàn)在我們來學(xué)習(xí)新的一篇,也算是java中比較重要的一節(jié)了
面向?qū)ο蠡A(chǔ)是java中核心。
面向?qū)ο笾饕ǚ庋b、繼承、多態(tài)
我們這節(jié)主要講的是封裝,在這之前我們先來了解一下類和對象的定義和關(guān)系
什么是對象?
世間一切都是對象,萬物解釋對象,對象就是看得見摸得著的東西。
什么是類?
類是現(xiàn)實(shí)生活中對具有屬性和行為同一類的總稱。
類和對象的關(guān)系?
類是對象的抽象化,對象是類的實(shí)例化
類的定義 ?
類是java中的基本概念,java中就是以類為基礎(chǔ)的,由類所構(gòu)成的
怎么創(chuàng)建對象?
創(chuàng)建對象是java中常用的形式
格式:
類名 對象名=new 類名();舉例 Phone p=new Phone();
創(chuàng)建對象的作用?
通過創(chuàng)建對象,該類實(shí)例化,我們就可以通過創(chuàng)建的對象訪問該類下所有成員也可以修改
所訪問的成員變量。(不包括private修飾的成員)
創(chuàng)建兩個(gè)類,
Phone類下:
PhoneDemo下:
Phone類下:
public class Phone { public int price=3999; public String brand="華為"; public static void playGame(){ System.out.println("這手機(jī)可以打游戲"); } }
PhoneDemo下:
public class PhoneDemo { public static void main(String[] args) { Phone p=new Phone();//創(chuàng)建對象 System.out.println(p.brand); System.out.println(p.price); p.playGame(); } }
以上我們演示了創(chuàng)建對象的作用功能。
通過對象的修改這里就不一一演示了。
二、封裝
封裝是把類中的成員用private修飾使他不能被所以改變,然后提供get/set方法對鎖封裝
的成員進(jìn)行賦值和賦值限制。
封裝的好處?
封裝使數(shù)據(jù)變得更有條理,我們提供的條件可以對外接輸入的值進(jìn)行篩選和判斷,比如
設(shè)一個(gè)年齡,我們可以設(shè)置年齡的范圍,和年齡的非負(fù),并且給出相應(yīng)的提示。
封裝的演示圖:
Student類下:
代碼:
public class Student { private String name; private int age; public Student(){}//無參構(gòu)造 public Student(String name,int age){// 有參構(gòu)造 if(age<0){ System.out.println("你輸入的年齡有誤,默認(rèn)為18歲"); this.age=18; this.name=name;} else{ this.age=age;this.name=name;} } public void setName(String name){//get/set方法 this.name=name; } public String getName(){ return name; } public void setAge(int age){ if(age<0){ System.out.println("你輸入的年齡有誤,默認(rèn)為18歲"); this.age=18; }else{ this.age=age; } } public int getAge(){ return age; } }
StudentDemo類下:
代碼:
public class StudentDemo { public static void main(String[] args) { Student s=new Student();//創(chuàng)建無參對象 s.setAge(20); s.setName("張三"); System.out.println(s.getName()+" ,"+s.getAge()); s=new Student("李四",-1);//創(chuàng)建對象的同時(shí)賦值 System.out.println(s.getName()+","+s.getAge()); } }
我們也可以在輸入年齡的時(shí)候加上Sanner進(jìn)行鍵盤上的輸入這里就不演示了
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
BigDecimal divide除法除不盡報(bào)錯(cuò)的問題及解決
這篇文章主要介紹了BigDecimal divide除法除不盡報(bào)錯(cuò)的問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06Spring中property-placeholder的使用與解析詳解
本篇文章主要介紹了Spring中property-placeholder的使用與解析詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-05-05基于ZooKeeper實(shí)現(xiàn)隊(duì)列源碼
這篇文章主要介紹了基于ZooKeeper實(shí)現(xiàn)隊(duì)列源碼的相關(guān)內(nèi)容,包括其實(shí)現(xiàn)原理和應(yīng)用場景,以及對隊(duì)列的簡單介紹,具有一定參考價(jià)值,需要的朋友可以了解下。2017-09-09java返回前端實(shí)體類json數(shù)據(jù)時(shí)忽略某個(gè)屬性方法
這篇文章主要給大家介紹了關(guān)于java返回前端實(shí)體類json數(shù)據(jù)時(shí)忽略某個(gè)屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08java8 實(shí)現(xiàn)map以value值排序操作
這篇文章主要介紹了java8 實(shí)現(xiàn)map以value值排序操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12java如何發(fā)送get請求獲取數(shù)據(jù)(附代碼)
這篇文章主要給大家介紹了關(guān)于java如何發(fā)送get請求獲取數(shù)據(jù)的相關(guān)資料,Java中的GET請求方法是HTTP協(xié)議中的一種請求方式,用于向服務(wù)器請求獲取資源,需要的朋友可以參考下2023-10-10Mybatis-Plus設(shè)置全局或者局部ID自增的實(shí)現(xiàn)
在使用Mybatis-Plus新增的時(shí)候,我們往往想要id隨著數(shù)據(jù)庫自增,本文主要介紹了Mybatis-Plus設(shè)置全局或者局部ID自增的實(shí)現(xiàn),具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01基于Java Gradle復(fù)制項(xiàng)目模塊過程圖解
這篇文章主要介紹了基于Java Gradle復(fù)制項(xiàng)目模塊過程圖解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06