JAVA構造函數是不是封裝_Java 封裝與構造函數

面向對象思想思想的三個特征:封裝,繼承,多態。

封裝:

表現:函數就是一個最基本的封裝體,類也是一個封裝體。

好處:1、提高了代碼的復用性,

2、隱藏了實現細節,可以對外提供可以訪問的方法,便于調用者的使用。

3、提高了安全性。

下面通過私有化(private)來對封裝進行理解:

class Person

{

//屬性:

private int age;? ? //age被修飾為了私有

//行為:

void speak()

{

System.out.println("age="+age);

}

}

年齡已被私有,錯誤的值無法賦值,可是正確的值也賦值不了,需要提供訪問方式。

對變量的訪問操作有兩個動作:賦值(設置 set),取值(獲取 get)

所以,對私有的變量訪問的方式就是 setAge? getAge

//定義對age賦值的方法。

void setAge(int a)

{

age = a;

}

//定義一個獲取age值得方法。

int getAge ()

{

return age;

}(以后再描述事物,屬性都私有化,并提供setXxx? getXxx方法對其進行訪問。)

記住:私有僅僅是封裝的體現形式而已。

構造函數:

為了描述事物更準確,發現事物對應的很多對象一創建時,就有了一些初始化的數據。這需要通過“構造函數來完成”。

構造函數怎么在代碼中體現?

1、沒有返回值類型。因為構造對象,創建完就結束,不需要結果,void也不要寫,。

2、構造函數名稱和類名一致。

3、沒有具體的返回值。

在Person類中定義一個構造函數

class Person

{

//屬性:姓名,年齡。

private String name;

private int age;

//一初始化,既沒有姓名,又沒有年齡。

Person()

{

}

//定義構造函數,對象一創建就具備姓名。

Person(String n)

{

//將接收到的值賦值給對象的name

name = n;

}

//一初始化既有姓名,又有年齡。

Person(String n,int a)

{

name = n;

age = a;

}

//行為。

public void speak()

{

System.out.println("name="+name+",age="+age);

}

}

class PersonDemo2

{

public static void main(String[] args)

{

Person p = new Person("lisi");//對象創建時,必須會調用對應的構造函數,因為對象需要初始化。

//? ? ? ? Person p2 = new Person("wangwu",23);

}

}

構造函數的細節: 1,一個類中可以有多個構造函數,它們的存在是以重載的形式體現的。 2,構造函數中也是有return語句的,用于結束初始化動作的。 3,構造函數是否能被private修飾呢?能,作用:其他程序無法創建該類的對象。

構造函數和一般函數的區別? 1,寫法不一樣。 2,運行上有差別,對象一創建就會調用對應的構造函數。 一般方法是對象創建后,才會調用所需的一般函數。 問:有了構造函數初始化姓名,那么還需要setName方法嗎? 需要,因為對象創建后,如果需要對數據進行修改,可以通過set完成。 3,構造函數在對象創建時,僅調用一次(初始化動作只做一次,而且先執行)。

一般方法可以被對象調用多次。

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

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

相關文章

python獲取mysql數據為excel中的sheet_python 從excel、csv、mysql、txt獲取數據源

使用python進行數據分析工作的第一步是獲取數據源,數據源來可能來自于excel、txt、csv文件、mysql數據庫。分別看看這些數據源怎么導入到python中。1. Excel 數據源導入python首先導入pandas 模塊import pandas as pdexcel 導入格式為:pd.read_excel( 路…

我的世界seus光影java版下載_我的世界0.17SEUS PE光影材質包(水反高清)下載

我的世界0.17SEUS PE光影材質包已經震撼發布,隨著我的世界pe0.17系列版本瘋狂的出現,很多玩家都有點開始不適應了,畢竟這個更新的頻率和速度太快了,0.16.0版本還沒有玩夠了,下面給大家提供我的世界0.17SEUS PE光影材質…

針式打印機風格英文字體_可愛漂亮的圣誕節和新年賀卡藝術字體推薦!

圣誕節即將到來,各種相應的促銷活動和宴會搞起來,今天macz小編為您帶來幾款風格可愛漂亮的圣誕節和新年賀卡藝術字體推薦!可以用于卡片、海報、邀請函、徽標、產品介紹、T恤等,效果魅力非常哦!可愛漂亮的圣誕節和新年賀…

golang mysql curd_用 golang 造了個 curd api 的輪子

最近需要寫個接口的項目 準備順便熟悉一下 golang在 github 找了下 golang 的 resetful 接口項目 大部分需要對每張表定義一個 model 文件所以就造了個輪子 不需要定義 model 類型的 curd 接口基于 gin 框架 只支持 mysql只需要改下 config/db.go 數據庫配置文件就能直接 go ru…

miniui展示日歷能點擊_2020年日歷設計,除了366天有新字體,還有新形式

點擊上方藍字,把我設置為星標☆吧今天是12月1日,距離2020年還有最后一個月。在我們度過的日子中,我們應該銘記每一天,每一個日子。講究儀式感的人,才是生活真正的智者。那么,對于2020年的日歷,應…

fopen php 讀取_PHP使用fopen與file_get_contents讀取文件實例分享

php中讀取文件可以使用fopen和file_get_contents這兩個函數,二者之間沒有本質區別,只是前者讀取文件的php代碼相比后者要復雜一點。本文章通過實例向大家講解fopen和file_get_contents讀取文件的實現代碼。需要的碼農可以參考一下。fopen讀取文件的代碼如…

php外部對象如何使用方法,php面向對象全攻略 (三)特殊的引用“$this”的使用...

7.特殊的引用“$this”的使用現在我們知道了如何訪問對象中的成員,是通過“對象->成員”的方式訪問的,這是在對象的外部去訪問對象中成員的形式,那么如果我想在對象的內部,讓對象里的方法訪問本對象的屬性,或是對象…

python編程制作接金幣游戲_一個簡單的pygame接金幣游戲

左右鍵控制小人移動去接空中下來的金幣,接住金幣得5分,接不住游戲結束,金幣速度會隨著level的關數而越來越快import pygame,sys,os,randompygame.init()class rect():#畫出小人def __init__(self,filename,initial_position):self.imagepygam…

php 126怎么設置發送郵箱驗證碼,phpmailer發送網易126郵箱的例子

本文介紹下,使用phpmailer發送網易126.com郵件的例子,有需要的朋友參考下。使用PHPMailer類發郵件的例子:IsSMTP();//郵件服務器$mail->Host "smtp.126.com";$mail->SMTPDebug 0;//使用SMPT驗證$mail->SMTPAuth true;/…

容器中apscheduler不執行_APScheduler:定時任務框架

APScheduler:定時任務框架安裝文檔: https://apscheduler.readthedocs.io/en/stable/userguide.html安裝$ pip install apscheduler>>> import apscheduler>>> apscheduler.version3.6.3組件APScheduler由一下四部分組成triggers:觸發器,指定定時任務執行的時…

nginx php image,[Docker]應該把 nginx 和 PHP 放在一個 image 里還是分開?

因為老板想搞 K8S,但是我連 Docker 都不懂,就覺得還是要學一點點 Docker 的,之前還是看了一點點的,甚至折騰過一個開發環境的方案,但是,很長時間不弄了以后,就全都還回去了。這次我又想自己搭建…

python pep8模塊_讀懂PEP8,讓你的Python代碼更加優雅

PEP8《8 號 Python 增強規范》(Python Enhacement Proposal #8),簡稱PEP8通俗的來講 PEP8 是針對 python 代碼格式而編訂的風格指南,令代碼更加易讀易懂。像谷歌這樣的大公司是有自己內部的風格規范Google Style,目的就是為了提高開發效率。據…

python數值模擬教程_數值模擬必備random模塊

該模塊實現了各種分布的偽隨機數生成器。可以在區間內抽取一個隨機數,可以在列表中抽取一個元素,可以從分布中抽取樣本 。random模塊不能直接訪問,需要導入 random 模塊,然后通過 random 靜態對象調用該方法。import random1 生成…

php版本哪個沒有面向對象,php面向對象的方法重載兩種版本比較

多個函數用同一個名字,但參數表,即參數的個數或(和)數據類型可以不同,調用的時候,雖然方法名字相同,但根據參數表可以自動調用對應的函數。PHP4 中僅僅實現了面向對象的部分的、簡單的功能,而 PHP5 以后對對…

python實現錄音小程序 界面_小程序如何實現錄音 播放功能

第二步:編輯文件首先在src下創建一個test包并在test包下新建一個類MyRecord具體步驟代碼如下所示:package test;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;import javax.sound.sampled.*;public class MyRecord…

織夢php網站修改教程,織夢DEDEcms織夢軟件模型增加圖集功能教程(含修改文件下載)...

這篇文章主要為大家詳細介紹了織夢DEDEcms織夢軟件模型增加圖集功能教程(含修改文件下載),具有一定的參考價值,感興趣的小伙伴們可以參考一下,有需要的朋友可以收藏方便以后借鑒。織夢DEDEcms織夢軟件模型增加圖集功能,這是今天361模板要給大家分享的。下…

python自動截圖發送郵件_PhantomJS按尺寸截取頁面,并用python發送郵件

前言:當前有個任務是要把幾個網站的日志返回狀態碼進行匯總,用餅圖展示,并每天發送郵件。一、分析問題畫出餅圖,這個我用kibana給畫出來了,下面不做講解;截取餅圖,因為kibana是用js展示出來的&a…

nikita popov php,PHP中對performance的考慮點

Nikita Popov 在他的演講中談了幾個PHP 程序中和performance相關的point。1.PHP使用shared memory, preload的方式事先分配,而只有在所有的處理結束之后,share memory 才會斷開和所有進程或者thread之間的聯系。光是opcode,FPM的設定還不足以…

python建模仿真 matlab_清華大學出版社-圖書詳情-《仿真建模與MATLAB實用教程》

MATLAB語言是目前世界上最為流行的科學計算語言之一,它的特點是能夠快速地完成諸如矩陣運算、微分、尋優等計算任務。由于它配備了很多應用領域的專業工具箱,諸如金融、信號處理、圖像處理、神經網絡、嵌入式系統、仿真建模等,而且每個工具箱都包含了該應…

java web使用jquery,JAVA_Web_JQuery

簡介:jquery 全稱 javaScript Query.是js的一個框架。本質上仍然是js。特點:支持各種主流的瀏覽器、使用特別簡單、擁有便捷的插件擴展機制和豐富的插件。一、JQuery內部封裝原理介紹:匿名閉包。下面這兩行代碼是jquery包下的已經封裝的代碼&…