电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解

瀏覽:2日期:2022-09-02 17:31:19

本文實(shí)例講述了Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法。分享給大家供大家參考,具體如下:

本文內(nèi)容: 什么是面對對象 類的定義與對象實(shí)例化 成員變量 成員變量的有效范圍 成員變量的賦值 靜態(tài)變量、方法與實(shí)例變量、方法 構(gòu)造函數(shù) 封裝與私有 this關(guān)鍵字

注:函數(shù)和方法是一樣?xùn)|西。【由于我之前學(xué)習(xí)的時(shí)候有些書籍不是同樣的說法,書看多了,我就習(xí)慣了不同情況下用不同的說法】

首發(fā)時(shí)間:2018-03-22

什么是面對對象: 面向?qū)ο髲?qiáng)調(diào)行為處于對象之中,并不直接執(zhí)行行為,而是通過對象執(zhí)行行為 類是對象的抽象,對象是類的具體實(shí)例。 【可以說,人是一個(gè)類,而不同身份的你我他是一個(gè)具體實(shí)例。人這個(gè)類抽象出了我們?nèi)祟惞灿械膶傩裕覀內(nèi)耸侨祟惖母鞣N屬性的具體實(shí)例結(jié)果。】 面向?qū)ο蟮幕咎卣鳎悍庋b,繼承,多態(tài) 封裝:比如一個(gè)對象把它的屬性和方法都封裝起來的話,它執(zhí)行的屬性和方法都是這個(gè)對象的,而不是其他對象的。 繼承:子類可以繼承父類的屬性和方法。比如“人類”繼承了“哺乳類”的屬性和方法,又增添人類獨(dú)有的屬性和方法。 多態(tài):一種多態(tài)是指同一個(gè)操作被不同對象執(zhí)行時(shí)有不同的結(jié)果(比如:狗的say是“汪汪汪”,而貓的是'喵喵喵');另一種多態(tài)是根據(jù)對象的傳入而決定執(zhí)行不同的方法。【本質(zhì)上這兩個(gè)是一樣的】 類的定義與對象實(shí)例化:類的定義: 類的定義包括兩部分:類聲明和類體 類是java程序的基本要素 定義類的格式:Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 修飾符可以是public 或空: public代表即使不同包也能訪問該類;而空代表只能該類只能在同一個(gè)包內(nèi)訪問。 類體的內(nèi)容包括變量的生命和方法的定義。【所以單獨(dú)的定義是錯(cuò)誤的,只能聲明并同時(shí)定義】 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 對象實(shí)例化 類的實(shí)例化就是創(chuàng)建一個(gè)對象: 創(chuàng)建對象:類名 變量名 =new 類名()【類名()可以傳入一些參數(shù)來初始化對象,由類的同名方法(構(gòu)造方法,下面講)定義能傳入什么參數(shù)】 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 匿名對象:簡單來說就是沒有變量名的實(shí)例化,直接使用new 類名()來執(zhí)行操作,由于沒有變量名來特異的標(biāo)記一片內(nèi)存空間,所以匿名對象一般只使用一次,比如new Dog().hello(); 調(diào)用方法或變量:對于實(shí)例方法或變量的可以直接使用對象來調(diào)用;而對于靜態(tài)方法或變量,既可以使用對象,也可以使用類來調(diào)用。 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解

class Dog{ String name; int foot=4; Dog(){//這是一個(gè)構(gòu)造函數(shù) this.name='旺財(cái)'; } void hello() { System.out.println('hello,this is a dog'); } static void static_hello() { System.out.println('hello,this is a dog too'); }}public class Demo { public static void main(String args[]) {Dog d=new Dog(); System.out.println(d.foot);//4 d.hello();//hello,this is a dog d.static_hello();//hello,this is a dog too Dog.static_hello();//hello,this is a dog too }}成員變量:成員變量的有效范圍 成員變量在整個(gè)類范圍內(nèi)有效,與變量聲明的位置無關(guān)。方法中的局部變量從聲明它的位置開始生效,并且只在方法體內(nèi)有效。 當(dāng)局部變量跟成員變量同名時(shí),如果想特別的使用成員變量,可以使用“this.變量名” 成員變量有默認(rèn)值,而局部變量沒有默認(rèn)值。成員變量的賦值: 可以使用構(gòu)造函數(shù)來對一些成員變量初始化 如果成員變量不是私有的,也可以直接取得變量名來賦值,比如dog.age=18靜態(tài)變量、方法與實(shí)例變量、方法:

根據(jù)變量、方法是否有static修飾可以分為實(shí)例變量,實(shí)例方法和靜態(tài)變量(類變量),靜態(tài)方法(類方法)

靜態(tài)變量,靜態(tài)方法:

被static修飾的成員的特點(diǎn):

隨著類的加載而加載,優(yōu)先于對象存在,靜態(tài)成員內(nèi)存位于方法區(qū)

被所有對象所用享【所以可稱為類變量或類方法】

可以直接類名調(diào)用

靜態(tài)方法只能訪問靜態(tài)成員

靜態(tài)方法中不可以寫this,super關(guān)鍵字

實(shí)例變量、實(shí)例方法: 實(shí)例變量、實(shí)例方法是對象的變量和方法,對象操作變量或方法也只是操作自己的變量或方法,不會影響其他對象。

實(shí)例變量方法跟靜態(tài)變量方法的區(qū)別好比:“泰迪狗類”比如有一個(gè)共有屬性“狗種類名”,那么這個(gè)屬性應(yīng)該是所有泰迪狗都有的,并且是泰迪狗共享的,如果某一天人類想改泰迪狗的種類名稱,那么應(yīng)該是所有泰迪狗都改的(靜態(tài)的);而每一只泰迪狗都有自己的主人,這是由每一只狗自身決定的,所以這是特有屬性,即使這只狗換了主人,也不會影響別的狗。(實(shí)例的)

構(gòu)造函數(shù): 構(gòu)造函數(shù)是類中的一種特殊函數(shù),構(gòu)造函數(shù)的名字與類的名字相同,而且沒有類型。 構(gòu)造函數(shù)負(fù)責(zé)對類對象的特定屬性初始化。【比如每一只狗對象都有不同的名字,而狗類是一個(gè)模板,是沒有名字的,而構(gòu)造函數(shù)可以做到給狗定義名字。】 類中可以有多個(gè)構(gòu)造函數(shù),它們以函數(shù)重載的方式存在。 構(gòu)造函數(shù)是沒有類型的,是直接以“ 類名(){}” 作為函數(shù)。 類中會默認(rèn)有一個(gè)無參數(shù)的構(gòu)造函數(shù),如果定義了其他構(gòu)造函數(shù),那么這個(gè)默認(rèn)的無參構(gòu)造函數(shù)就會不默認(rèn)存在了。

class Dog{ String name; Dog(){ this.name='旺財(cái)'; } Dog(String name){ this.name=name; }}public class Init_usage { public static void main(String args[]) {Dog d3=new Dog(); Dog d4=new Dog('小菜'); System.out.println(d3.name); System.out.println(d4.name); }} 補(bǔ)充: 構(gòu)造函數(shù)之間可以相互調(diào)用,但要防止遞歸調(diào)用。 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 Java面向?qū)ο蟪绦蛟O(shè)計(jì):類的定義,靜態(tài)變量,成員變量,構(gòu)造函數(shù),封裝與私有,this概念與用法詳解 調(diào)用其他構(gòu)造函數(shù)來實(shí)現(xiàn)初始化在有多個(gè)變量需要初始化的時(shí)候有明顯的代碼節(jié)省。 封裝與私有: 類的封裝的一個(gè)體現(xiàn)是變量和函數(shù)的私有化 封裝的準(zhǔn)則: 將不需要對外提供的內(nèi)容都隱藏起來。 將屬性都隱藏,提供公共方法對其訪問。 私有化使類的非公共屬性隱藏了起來,比如一個(gè)“人類”對象有自己的資產(chǎn),一般只有自己才能知道自己有多少資產(chǎn),并且不想直接給別人看到,但如果別人問題,還是會告訴別人的(隱藏了自己的資產(chǎn)情況,但是自己能夠使用方法獲得結(jié)果,這個(gè)方法是開放的,調(diào)用就是相當(dāng)于別人問)。 可以使用private來使變量和函數(shù)私有化,這樣之后不能直接使用 對象.變量 或 對象.函數(shù) 來調(diào)用,只有對象內(nèi)部的方法才能調(diào)用 將變量或方法私有化之后,一般對外提供getXXX,setXXX方法進(jìn)行訪問,提高數(shù)據(jù)訪問的安全性。

class Man{ private int money; String name; Man(String name,int money){ this.name=name; this.money=money; } int getmoney(){ return money; } void setMoney(int money){ this.money=money; } }public class Private_usage { public static void main(String[] args) { Man m=new Man('lilei',2000); System.out.println(m.name);//lilei// System.out.println(m.money);//報(bào)錯(cuò)的,因?yàn)樗接辛耍荒茉L問// System.out.println(m.wife);//報(bào)錯(cuò)的,因?yàn)樗接辛耍荒茉L問 System.out.println(m.getmoney()); //2000 m.setMoney(6000); System.out.println(m.getmoney());//6000 }} this關(guān)鍵字: this代表當(dāng)前對象(調(diào)用函數(shù)時(shí)代表當(dāng)前調(diào)用該函數(shù)的對象),比如在類中可以使用this.XXX來調(diào)用對象自己的變量或方法。 當(dāng)局部變量和成員變量同名時(shí),可以用this關(guān)鍵字區(qū)分,this.XXX代表使用對象自身的變量

類中的成員變量默認(rèn)是帶有this前綴的,但遇到同名時(shí)必須加以區(qū)分。

this加上參數(shù)列表(this(參數(shù)))的方式就是訪問本類中符合該參數(shù)的構(gòu)造函數(shù)

用于調(diào)用構(gòu)造函數(shù)的this語句必須放在第一行,因?yàn)槌跏蓟瘎幼饕獌?yōu)先執(zhí)行

class Person{ String name; int age; Person(String name,int age){ this.name=name; this.age=age; } void hello() { this.sysprint();// sysprint(); } void sysprint() { System.out.println('hello world!'); }}public class This_usage { public static void main(String args[]) { Person p1=new Person('lilei',18); p1.hello();//hello world! }}

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 杭州代理记账多少钱-注册公司代办-公司注销流程及费用-杭州福道财务管理咨询有限公司 | 耐高温电缆厂家-远洋高温电缆 | 交通信号灯生产厂家_红绿灯厂家_电子警察监控杆_标志杆厂家-沃霖电子科技 | 食品机械专用传感器-落料放大器-低价接近开关-菲德自控技术(天津)有限公司 | 工业冷却塔维修厂家_方形不锈钢工业凉水塔维修改造方案-广东康明节能空调有限公司 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 升降炉_真空气氛炉_管式电阻炉厂家-山东中辰电炉有限公司 | 广州食堂承包_广州团餐配送_广州堂食餐饮服务公司 - 旺记餐饮 | 大连海岛旅游网>>大连旅游,大连海岛游,旅游景点攻略,海岛旅游官网 | 刘秘书_你身边专业的工作范文写作小秘书 | 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 双齿辊破碎机-大型狼牙破碎机视频-对辊破碎机价格/型号图片-金联机械设备生产厂家 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 合肥活动房_安徽活动板房_集成打包箱房厂家-安徽玉强钢结构集成房屋有限公司 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 亳州网络公司 - 亳州网站制作 - 亳州网站建设 - 亳州易天科技 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 电池挤压试验机-自行车喷淋-车辆碾压试验装置-深圳德迈盛测控设备有限公司 | 塑胶跑道施工-硅pu篮球场施工-塑胶网球场建造-丙烯酸球场材料厂家-奥茵 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | LZ-373测厚仪-华瑞VOC气体检测仪-个人有毒气体检测仪-厂家-深圳市深博瑞仪器仪表有限公司 | 南京泽朗生物科技有限公司-液体饮料代加工_果汁饮料代加工_固体饮料代加工 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 北京公司注册_代理记账_代办商标注册工商执照-企力宝 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 日本东丽膜_反渗透膜_RO膜价格_超滤膜_纳滤膜-北京东丽阳光官网 日本细胞免疫疗法_肿瘤免疫治疗_NK细胞疗法 - 免疫密码 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 南京试剂|化学试剂|分析试剂|实验试剂|cas号查询-专业60年试剂销售企业 | 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 |