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.mzph.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包下的已经封装的代码&…