zoukankan      html  css  js  c++  java
  • Java— 封装

    封装:

    将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过类提供的方法来实现对隐藏信息的操作和访问。
    好处:1、通过规定的方法访问数据
          2、隐藏类的实例细节,方便修改和实现
    3)封装的实现步骤:
    修改属性的可见性(设为private)
    →创建getter/setter方法(用于属性的读写)
    →在getter/setter方法中加入属性控制语句(对属性值的合法性进行判断
    1 public class Telphone{
    2 private float cpu;
    3 public float getCpu(){
    4 return cpu;
    5  }
    6 public void setCpu(float new_cpu){
    7 cpu=new_cpu
    8  }
    9 }
    1 public static void main(String[],args){
    2 
    3 Telphone phone=new Telphone ();
    4 phone.setCpu(3.0);
    5 phone.get();
    6 
    7 }
    1. 包的作用:管理 jAVA 文件; 解决同名文件冲突。
    2. 定义包: package 包名
    注意: 必须放在 JAVA 源程序的第一行
           包名间可以使用 "." 好隔开
           eg: com.imooc.MyClass
    相同的类用包名区分 三、系统中的包:意思是 JAVA 源程序最上面的 头文件。主要是引用的一些方法类 比如: java.(功能).(类) java.lang..(类) 包含 java 语言基础的类 java.util.(类) 包含 JAVA 语言中的各种工具 java.io.(类) 包含输入、 输出相关功能的类 包的使用: (1) 可以通过import关键字,在某个文件使用其他文件中的类。 import com.imooc.music.MyClass (2)JAVA 中, 包名的命名规范是全小写字母拼音 (3)使用的时候不但可以加载某个包下的所有文件 eg: com.imooc.* 也可以加载某个具体包下的所有文件 eg: com.imooc.music.
    访问修饰符--可以修饰属性和方法的访问范围

    ----JAVA中的this关键字---------
    1、this关键字代表当前对象
    (1)this.属性操作当前对象的属性;
    (2)this.方法调用当前对象的方法;
    2、封装对象的时候经常会用this关键字

    自动生成set/get方法:Source----Generate Getter and Setter

    什么是 Java 中的内部类

    问:什么是内部类呢?

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

    问:那为什么要将一个类定义在另一个类里面呢?清清爽爽的独立的一个类多好啊!!

    答:内部类的主要作用如下:

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

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

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

    问:内部类有几种呢?

    答:内部类可分为以下几种:

    • 成员内部类
    • 静态内部类
    • 方法内部类
    • 匿名内部类
    •  1 //外部类HelloWorld
       2 public class HelloWorld {
       3     
       4     // 内部类Inner,类Inner在类HelloWorld的内部
       5     public class Inner {
       6         
       7         // 内部类的方法
       8         public void show() {
       9             System.out.println("welcome to imooc!");
      10         }
      11     }
      12     
      13     public static void main(String[] args) {
      14         
      15         // 创建外部类对象
      16         HelloWorld hello = new HelloWorld();
      17         // 创建内部类对象
      18         Inner i = hello.new Inner();
      19         // 调用内部类对象的方法
      20         i.show();
      21     }
      22 }

      Java 中的成员内部类

    • 内部类中最常见的就是成员内部类,也称为普通内部类。我们来看如下代码:

      运行结果为:

      从上面的代码中我们可以看到,成员内部类的使用方法:

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

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

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

      4、 编译上面的程序后,会发现产生了两个 .class 文件

      其中,第二个是外部类的 .class 文件,第一个是内部类的 .class 文件,即成员内部类的 .class 文件总是这样:外部类名$内部类名.class

      另外,友情提示哦:

      1、 外部类是不能直接使用内部类的成员和方法滴

      可先创建内部类的对象,然后通过内部类的对象来访问其成员变量和方法。

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

      运行结果:

    •  

      Java 中的静态内部类

       

    • 静态内部类是 static 修饰的内部类,这种内部类的特点是:

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

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

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

      运行结果 : 

    Java 中的方法内部类

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

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

  • 相关阅读:
    HDU1720 A+B Coming
    HDU1390 ZOJ1383 Binary Numbers
    HDU1390 ZOJ1383 Binary Numbers
    HDU2504 又见GCD
    HDU2504 又见GCD
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1335 POJ1546 UVA389 UVALive5306 ZOJ1334 Basically Speaking
    HDU1020 ZOJ2478 Encoding
    HDU1020 ZOJ2478 Encoding
    HDU2097 Sky数
  • 原文地址:https://www.cnblogs.com/my334420/p/6683402.html
Copyright © 2011-2022 走看看