什么是java中的封装
1、封装的概念:隐藏信息、隐藏具体的实现细节。

2、封装的实现步骤

1)修改属性的可见性,private。
2)创建修改器方法访问器方法,getXXX/setXXX。(未必一定要写,可以完全隐藏起来,仅供内部使用 )
3)对属性的合法性进行判断。例如:Jframe.setSize(a , b)中的参数不能无限大,如果太大就设置为默认值。

使用包管理 Java 中的类
1、包的命名规范是全小写。

Java 中的访问修饰符
1、private:仅自己的方法可以直接访问。

2、friendly:(隐式、默认)本类和同包类可直接访问。

3、protected:在friendly的基础上补充了子类可直接访问(可直接访问的意思是子类可以super.field或者super.method?)。

4、public:所有类都可以直接访问。(new a().public field)

Java 中的 this 关键字

什么是 Java 中的内部类
1、概念:Inner Class就是定义在一个类里面的类。

2、意义:一是提供更好的封装,二是有时候相对外部类用起来更方便。
对外部类而言,可以把内部类隐藏起来(自己用,但也不是直接使用),而不被包中的其它类访问;
对内部类本身而言,可以使用外部类的所有数据,私有的也可以!

3、具体实现:

//外部类HelloWorld
public class HelloWorld { // 内部类Inner,类Inner在类HelloWorld的内部
public class Inner { // 内部类的方法
public void show() {
System.out.println("welcome to imooc!");
}
} public static void main(String[] args) { // 创建外部类对象
HelloWorld hello = new HelloWorld();
// 通过外部类对象调用内部类构造方法来创建内部类对象
Inner i = hello.new Inner();
// 调用内部类对象的方法
i.show();
}
}

Java 中的成员内部类
1、内部类中最常见的就是成员内部类,也称为普通内部类

2、位置:成员变量的位置。

3、无法直接new内部类对象,必须通过外部类对象创建。

4、编译后除了产生Outer.class还会生成一个Outer$Inner.class。

5、需要在类内创建内部类对象才可以调用内部类的方法、属性。

6、内部类访问外部类的成员变量或者方法。
变量不同名的情况:直接使用变量a、b
内部类和外部类具有同名变量的情况:b访问内部类的b,而Outer.this.b访问外部类的b。

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

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

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

Java 中的方法内部类
1、概念:方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用

2、一定要注意哦:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。

《Java入门第二季》第二章 封装的更多相关文章

  1. Java入门 第一季第二章 变量和常量

    这是我学习慕课网Java课程的笔记.原视频链接为:http://www.imooc.com/learn/85 2-1 Java中的keyword PS:Javakeyword区分大写和小写 2-2 认 ...

  2. JAVA入门第一季(mooc-笔记)

    笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...

  3. Java入门第一季学习总结

    一.课程总概 这门课程的学习难度属于入门级别,又由于有c++的基础,所以学习这门课程也是比较轻松的.可以简单地把这门课的学习分为四部分:第一部分,java的介绍(第一章):第二部分,java的数据类型 ...

  4. 《java入门第一季》之Arrays类前传(排序案例以二分查找注意的问题)

    根据排序算法,可以解决一些小案例.举例如下: /* * 把字符串中的字符进行排序. * 举例:"dacgebf" * 结果:"abcdefg" * * 分析: ...

  5. 《java入门第一季》之面向对象(内部类到底在哪里?)

    /* 内部类概述: 把类定义在其他类的内部,这个类就被称为内部类. 举例:在类A中定义了一个类B,类B就是内部类. 内部的访问特点: A:内部类可以直接访问外部类的成员,包括私有. B:外部类要访问内 ...

  6. Java入门第一季

    慕课网:http://www.imooc.com/learn/85 Java入门知识第一季 1.Java开发环境和IDE的使用: 2.变量和常量 3.常用的运算符 4.流程控制语句 5.数组:使用Ar ...

  7. Java入门第一季——从此投身Java??

    找工作告一段落. 最后的工作呢,和java紧密相关,也是阴差阳错,不过都是软件开发,都好了,不过以后侧重点肯定是在java这边,php有机会还是一直学下去的,那么美的说~ Java开发第一季  一.简 ...

  8. JAVA入门第二季 第一章 类和对象

    面向对象编程 Object Oriented Programming OOP 第一.什么是类和对象 在具体说明类和对象之前,先说说别的. 眼睛在人类身体上最为有用的器官.如果一个没有了眼睛,这个人与世 ...

  9. Java入门第二季第一章类和对象知识点

    Java 中的 static 使用之静态方法 1. 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员.如: 如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问 ...

  10. 《Java入门第三季》第二章 认识 Java 中的字符串

    什么是 Java 中的字符串.1.在Java的世界里,字符串被作为String类型的对象处理. 2.通用的初始化的方式:String s = new String("i love you & ...

随机推荐

  1. 解决Xcode "The selected destination does not support the architecture " 错误错误

    XCODE编译运行项目后,发现工程编译后无法运行,出现:"The selected destination does not support the architecture for whi ...

  2. JavaScript基础细讲

    JavaScript基础细讲   JavaScript语言的前身叫作Livescript.自从Sun公司推出著名的Java语言之后,Netscape公司引进了Sun公司有关Java的程序概念,将自己原 ...

  3. JZOJ.5325【NOIP2017模拟8.21】九九归一

    Description

  4. iOS tableview上放textfield

    用UITableViewController就可以了,处理键盘弹出和消失的代码已经封装在UITableViewController里了.

  5. 项目中启动另外的一个app

    NSMutableString *webViewContent = [[NSMutableStringalloc] init]; [webViewContent appendString:@" ...

  6. redis安装(linux平台)

    1.安装依赖项 yum install tcl -y 2.下载redis包并安装 wget http://download.redis.io/releases/redis-2.8.17.tar.gz ...

  7. 微信小程序 --- 事件绑定

    事件类别: tap:点击事件: longtap:长按事件: touchstart:触摸开始: touchend:触摸结束: touchcansce:取消触摸: 事件绑定: bind绑定: catch绑 ...

  8. 第二次作业(WordCount)

    1 Github项目地址:https://gitee.com/DamonGetup/WordCount/tree/master 2 对程序设计语言源文件统计字符数.单词数.行数,统计结果以指定格式输出 ...

  9. linux软件源配置

     实操(虚拟机安装): 下载VMware,然后按照如下教程安装虚拟机: https://jingyan.baidu.com/article/c275f6ba07e269e33d756714.html ...

  10. python控制台输出颜色

    python_控制台输出带颜色的文字方法在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也 ...