一、封装

1、定义

将类的信息隐藏在类的内部,不允许外部程序直接进行访问,而是通过该类提供的方法来实现对隐藏信息的操作和方法。

2、优点

(1)只能通过规定的方法访问数据

(2)隐藏类的细节,方便修改和实现。

3、封装的实现步骤

(1)修改属性的可见性(private)

(2)创建getter/setter方法(属性的读写)

(3)在getter/setter方法放入控制语句

4、一个demo

package com.cnblogs;

public class Telphone
{
private double screen;
private double cpu;
private double mem; public double getScreen()
{
return screen;
} public void setScreen(double newScreen)
{
screen = newScreen;
} public Telphone()
{
System.out.println("构造函数执行");
} public Telphone(float nscreen,float ncpu , float nmem)
{
screen = nscreen;
cpu = ncpu;
mem = nmem;
System.out.println("创建有参构造函数,可以赋初值");
}
}

main函数中调用

package com.cnblogs;

public class InitTelphone
{
public static void main(String[] args)
{
// TODO Auto-generated method stub
Telphone phone = new Telphone(5,2,2); phone.setScreen(5);
System.out.println(phone.getScreen()); } }

5、自动创建set/get方法:

然后选择我们要使用的set / get方法即可、

二、Java中的包

1、包的作用

(1)管理java文件

(2)解决同名文件冲突

2、定义包:

package 包名

(1)必须放在java源程序的第一行

(2)包名间可以使用“.”隔开

3、java中的包

4、包的使用

(1)可以通过import关键字,在某个文件中使用其他文件的类

(2)java中,包的命名规范是全小写字母拼写

(3)使用的时候不但可以加载某个包的全部文件,还可以选择加载他的子文件

三、Java中的访问修饰符

1、访问修饰符总结

四、Java中的this关键字

1、this关键字代表当前对象

2、封装对象的时候,经常会使用this关键字

五、Java中的内部类

1、定义:

内部类( Inner Class )就是定义在另外一个类里面的类。与之对应,包含内部类的类被称为外部类。

2、内部类的作用:

(1)内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其他类访问该类。

(2)内部类的方法可以直接访问外部类的所有数据,包括私有的数据

(3)内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便

3、内部类的分类:

  • 成员内部类

  • 静态内部类
  • 方法内部类
  • 匿名内部类

4、成员内部类

(1)Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等

(2)Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响

(3)定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:

内部类 对象名 = 外部类对象.new 内部类( );

(4)外部类是不能直接使用内部类的成员和方法,可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法

(5)如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。

5、Java中的静态内部类

(1)静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问

(2)如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;

如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员

(3)创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();

6、Java中的方法类

(1)方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。

(2)由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符

Java学习笔记(八)——封装的更多相关文章

  1. Java学习笔记八

    IO流:就是input/output输入/输出流. 一.字节流操作文件的便捷类:FileWriter和FileReader import java.io.FileWriter; import java ...

  2. Java学习笔记之封装与继承

    封装 1,将属性定义为私有的(private)   不能通过  对象名.属性  来直接访问,但是可以通过方法来间接的访问, 2,封装的意义:公有属性可以被随意修改,并且不能被程序察觉.封装后,别人通过 ...

  3. Java 学习笔记 (八) Java 变量

    head first java page85 实例变量是声明在类内而不是方法中 class Horse{ private double height=15.2; private String bree ...

  4. Java学习笔记八(反射)

    1.介绍 反射为Java程序在执行时提供了动态的能力.利用反射能够在执行时对程序进行动态的控制.本篇博客着重解说一下Java中的反射. 2.Class类的使用 在Java执行过程中,每一个类被载入后都 ...

  5. Java学习笔记八:Java的流程控制语句之循环语句

    Java的流程控制语句之循环语句 一:Java循环语句之while: 生活中,有些时候为了完成任务,需要重复的进行某些动作.如参加 10000 米长跑,需要绕 400 米的赛道反复的跑 25 圈.在 ...

  6. 1.11(java学习笔记)封装

    封装将内部细节封装起来,只暴露外部接口. 比如我们的电视就将复杂的内部线路用外壳封装起来,只留下外部按钮或遥控,用户只需要知道按钮或遥控的作用就可以,无需明白电视内部是如何工作. 而且封装也保障了安全 ...

  7. Java学习笔记(八)面向对象---抽象类

    当多个类中出现相同功能,但是功能主体不同时,我们可以向上抽取,只抽取功能定义,而不抽取功能主体. 抽象类的特点 抽象方法一定在抽象类中. 抽象方法和抽象类都必须被abstract关键字修饰. 抽象类不 ...

  8. Java学习笔记之——封装

    1. 属性和方法放到类中 2. 信息的隐藏 (1) 属性的隐藏 (2) 方法实现的细节隐藏 3. 权限修饰符: 从小到大的顺序:private->默认的(什么都不写)->protected ...

  9. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  10. Java IO学习笔记八:Netty入门

    作者:Grey 原文地址:Java IO学习笔记八:Netty入门 多路复用多线程方式还是有点麻烦,Netty帮我们做了封装,大大简化了编码的复杂度,接下来熟悉一下netty的基本使用. Netty+ ...

随机推荐

  1. springMVC 访问404

    问题:404 但是其他的controller可以访问!!!

  2. div加jquery实现iframe标签的功能

    由于最近项目需要,前端后台都完全采用div+css的方式布局.因而左思右想,有什么办法可以替代常用的iframe上下左右的布局方式,而且页面只是局部刷新.参考了许多前辈的资料,并加以整理,因而有了以下 ...

  3. redis 中文字符显示

    2015年5月20日 09:57:01 星期三 方法一: redis-cli -h --raw 方法二: linux 终端: echo -e "\xe7\xa5\x9e\xe6\xa3\x8 ...

  4. Solr集群常用的操作总结

    之前搭建过SolrCloud和Solr单机版本,另外还有很多对Solr配置文件以及核心的操作,以下主要总结Solr集群中的常用操作,即在配置文件中正确设置ZK_HOST参数并且Zookeeper正确启 ...

  5. Effective C++ -----条款33:避免遮掩继承而来的名称

    derived classes内的名称会遮掩base classes内的名称.在public继承下从来没有人希望如此. 为了让被遮掩的名称再见天日,可使用using声明式或转交函数(forwardin ...

  6. linux线程的实现

    首先从OS设计原理上阐明三种线程:内核线程.轻量级进程.用户线程 内核线程 内核线程就是内核的分身,一个分身可以处理一件特定事情.这在处理异步事件如异步IO时特别有用.内核线程的使用是廉价的,唯一使用 ...

  7. C#有关日期的使用方法

    DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays( - Convert.ToInt32(dt.DayOfWeek.T ...

  8. IIS 4.0配置

    neHandler”   今天安装了windows7 开发web项目需要安装IIS,当安装完以后,web程序已经映射到了本地IIS上,运行出现如下错误提示 处理程序“PageHandlerFactor ...

  9. 【Bochs 官方手册翻译】 第一章 Bochs介绍

    Bochs 是一个可以完全模拟 Intel x86 计算机的虚拟机系统.它包含了 Intel x86 CPU 仿真.常见设备仿真.以及定制 BIOS.Bochs 可以虚拟多种不同类型的 x86 CPU ...

  10. visio 到处流程图

    文件 -> 另存为 (选 .jpg) 选自定义,然后 300 * 300 像素.