今日所学

面向对象的三大特征:封装、继承、多态

封装

包装:

1.方便携带 访问方便

2.保护性

3.安全性

封装可以认为是一个保护屏障,防止该类的代码和数据被其他类随意的访问

如果要访问该类的数据,必须通过制定的方式。

适当的封装可以让你的代码更容易理解和维护,也加强了代码的安全性。

狭义的封装一般是把类中的成员变量隐藏起来,如果需要访问某个隐藏的成员变量,

提供公共方法对其访问。

广义的封装范围包罗万象

封装的步骤

1.使用权限修饰符private 私有的,私人的,自己的

private修饰类中的成员变量 此时类中的成员变量就隐藏起来类

2.提供对应的一对getXxx()方法和setXxx()方法

Xxx------->成员变量名

private的含义:

1.private可以修饰成员变量和成员方法。

2.private是一个权限修饰符,代表的是最小的权限。

3.被private修饰后的成员变量和成员方法,只能在本类中访问。

成员变量

1.如果没有手动进行赋值,系统会自动进行赋值(默认值)

2.成员变量不同的数据类型进行初始化赋值是不同的

整形(byte short int long)--->0

浮点型(float double)--->0.0

字符型(char)---> 空格 “/u0000”

布尔型(boolean)--->false

引用类型(类,String,接口)--->null

封装优化1---this关键字

this代表所在类的当前对象的引用(地址值),即对象自己的应用。

备注:方法被哪个对象调用,方法中的this就代表哪个对象,即谁调用,this就指带谁。

1.就近原则

this的使用格式:

this.成员信息名

通常使用this修饰方法中的变量,解决成员变量被隐藏的问题。

封装优化2---构造方法

构造方法的两个作用:

1.进行对象的创建

2.用来初始化对象中的成员变量信息

当一个对象呗创建出来的时候,构造方法用来初始化该对象,给对象的成员变量赋值。

备注:

当一个类被定义出来的时候,系统会自动给你一个构造方法,是一个没有参数的构造方法

但是如果在类中自定义带参数的构造方法后,那么就会覆盖掉系统默认的提供的无参数的构造方法。

构造方法定义格式:

修饰符 构造方法名(参数列表){//方法体

......

}

构造方法名与它所在的类名相同,它没有返回值.

方法的重载:

方法的重写:

标准代码----JavaBean

JavaBean 是java语言编写类的一种标准规范,符合JavaBean标准类,要求类必须是具体和公共的,

并且具有无参数的构造方法,提供用来操作成员变量的set和get方法

成员变量是私有的,set和get方法是公共的。

JavaBean标志类

public classClasName{//成员变量//构造方法//无参的构造方法【必须】//有参的构造方法【建议】//成员方法//getXxx()//setXxx()

}

容器:

是将多个数据存储到一起,每个数据称为该容器的元素。

数组:

存储数据长度固定的容器,保证多个数据的数据类型要一致。

数组定义:

方式一:推荐使用

格式:数组存储的数据类型[  ] 数组名称= new 数组存储的数据类型[长度];

如:定义一个长度为5的整形数组

int[]arr = new int[5];

定义一个长度为10的字符串数组

String []arr = new String[10];

方式二:

格式:数组存储的数据类型[  ] 数组名称= {元素1,元素2,元素3,....};

如:定义一个存储张三李四王五赵六字符串的数组容器

String[]arr = {"张三","赵四","王五","赵六"};

方式三:

格式:数组存储的数据类型 [  ] 数组名称= new 数组存储的数据类型[  ]{元素1,元素2,元素3...};

如:定义一个存储10,20,30,40的整形数组

int[]arr=new int[]{10,20,30,40};

备注:数组有定长特性,长度一旦制定,不可更改。

数组的访问:

索引:每一个存储到数组的元素,都会自动的拥有一个编号,起始值从0开始,这个自动编号称为数组的索引(index)

可以通过数组的索引访问数组中的元素。索引不重复唯一。

格式:

数组名[索引]

如  :

String[]arr = {"张三","赵四","王五","赵六"};

0--代表的就是数组中的第一个元素,1--代表的就是数字中的第二个元素,以此类推。

李四=arr[1]

arr[3]

数组的长度属性:每个数组都具有长度,而且是固定的

格式:

数组名.length

获取数组的最大索引值:数组名.length-1

String arr = { };//不是null,空为没有元素

给数组中的索引对应的位置赋值;

arr[index]=值

数组遍历:【重点】

数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历是数组操作中的最重要的一环。

java存储张三李四_JAVA_day14_面向对象的特征相关推荐

  1. Java面试题:面向对象的特征有哪些方面?

    古往今来,自学成才的人有几个,大多数人才都是有良师引导.如果说你觉得自己也能学会,秉持着好记性,能背会所有书,但是你背会了书,却不理解其中的意义,这书也就白读了吗?所以你在前行的时候要有人告诉你书的奥 ...

  2. 开课吧课堂-Java面试题:面向对象的特征有哪些方面?

    古往今来,自学成才的人有几个,大多数人才都是有良师引导.如果说你觉得自己也能学会,秉持着好记性,能背会所有书,但是你背会了书,却不理解其中的意义,这书也就白读了吗?所以你在前行的时候要有人告诉你书的奥 ...

  3. 一、Java面试基础之面向对象的特征:继承、封装和多态(原创实例)

    #一.继承 ***1.概念:***继承是类与类的一种关系,是一种"is a"的关系.比如"狗"继承"动物",这里动物类是狗类的父类或者基类, ...

  4. Java学习day012(面向对象三大特征补充)

    文章目录 多态 多态的成员访问的特点 多态的好处和弊端 多态中的转型 抽象类 抽象类特点 抽象类的成员特点 接口 接口特点 接口的成员特点 类和接口的关系 抽象类和接口的关系 内部类 成员内部类 局部 ...

  5. java面向对象的特征 —(13)

    面向对象的特征一:封装与隐藏 1.为什么要引入封装性? 我们程序设计追求"高内聚,低耦合". 高内聚 :类的内部数据操作细节自己完成,不允许外部干涉: 低耦合 :仅对外暴露少量的方 ...

  6. Java基础之面向对象的特征。

    首先需要知道类和对象是什么? 维基百科定义类为: an extensible program-code-template for creating objects, providing initial ...

  7. Java原理 面向对象的特征与“六原则一法则”

    面向对象的特征 主要有抽象.继承.封装和多态四个方面,下面是我们来详细分析它们的含义: - 抽象: 抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属 ...

  8. Java基础-面向对象第二特征之继承(Inheritance)

    Java基础-面向对象第二特征之继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承的概述 在现实生活中,继承一般指的是子女继承父辈的财产.在程序 ...

  9. Java面向对象(二)面向对象的特征 --- 封装 、 继承、 多态

    面向对象的特征:封装.继承.多态.(抽象) 一.封装 体现形式: 函数 --- 提高代码的复用性. 属性的私有化 --- 将属性设为私有,通过提供对外的访问方法来间接操作对象属性,可以再方法内对属性做 ...

最新文章

  1. c++抽象类在多继承中的应用
  2. 新建android项目导包,Cordova开发App入门(一)创建android项目
  3. 林辉高考机器人_机器人2019年参加高考 力争考上一本
  4. 陆奇李开复余凯谈AI十年机遇,Hinton和LeCun会如何评价?
  5. 触动精灵怎么设置虚拟服务器,如何调试脚本及解决问题的方法
  6. Linux转发性能评估与优化(转发瓶颈分析与解决方案)
  7. Excel-缺失数据处理
  8. UI设计需要使用哪些软件?推荐这5款
  9. 【网络】把路由器用作交换机的方案
  10. android手机连接esp32视频
  11. 套接字基础与UDP通信
  12. 【更新】京东、美团、饿了么获取cookies
  13. Oracle 11g win32位 window7下安装教程 (其实64位类同)
  14. O2O常见的结算模式是什么 O2O线上线下营销策略有哪些?
  15. Unity 中 print 和 Debug.Log 的区别
  16. 实现单点登录(伪登录)
  17. 关于矩阵胶囊与EM路由的理解(基于Hinton的胶囊网络)
  18. [新增EA028高压注射器]24套UML+EA和StarUML的建模示范视频-全程字幕(2022.7.4更新)
  19. Backlight driver on Android
  20. FPGA 学习笔记:Vivado 2018.2 MicroBlaze Uartlite 配置

热门文章

  1. linux脚本编写图形,shell图形化界面脚本实现
  2. 2D Conforming Triangulations
  3. NDK Resolution Outcome: Project settings: Gradle model version=XXX, NDK version is UNKNOWN
  4. Python将word表格存入excel —— 格式化pg参数手册
  5. NS3仿真之LTE数据分析RSRP,SINR,吞吐量
  6. Centos 7 部署 OpenStack_Rocky版高可用集群3-1
  7. 【计算机视觉】图像配准(Image Registration)
  8. Tomcat部署及安装
  9. [转]Facebook 如何管理150亿张照片
  10. 详解Shell脚本:正则表达式