继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java第二季 注意事项与理解

慕粉1474430889
关注TA
已关注
手记 2
粉丝 0
获赞 11

1、成员变量与局部变量的区别

成员变量与局部变量的区别
2、构造方法的特点

  • 也是一种方法,不过与普通方法不一样的是普通方法只说明这个类能干什么,构造方法能创建一个对象,并且初始化对象的值。
  • 构造方法与类同名,且没有返回值。(eg: public helloworld() )
    可分为有参构造方法(参数是为类成员变量赋的值),或无参构造方法。
  • 在main 函数执行时,自己创建的构造方法的优先级比默认的构造方法高。而且自己创建的有参或无参在main函数调用时要一一对应。
  • 同样的,构造方法也属于方法,有重载特性。

3、静态修饰关键字 static

static可以修饰变量、方法和代码块。分别称为静态变量、静态方法、静态初始化块。

  • 定义:Java 中被 static 修饰的成员称为静态成员或类成员。
  • 作用域:它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。
  • 访问:静态成员可以使用类名直接访问,也可以使用对象名进行访问。(当使用对象访问时一般就会给成员赋新值了 )当然,鉴于他作用的特殊性更推荐用类名访问~~

静态方法注意事项

  • 1、 静态方法中可以直接调用同类中的静态成员(方法和变量),但不能直接调用或访问普通成员。可以通过创建对象来访问普通成员(方法和变量)
  • 2、普通成员方法则可以直接访问同类的非静态变量(方法)和静态变量(方法)

静态初始化块注意事项

  静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能初始化静态变量,不能初始化普通的成员变量。

 程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。由于静态初始化块只在类加载时执行一次,所以当再次创建对象 hello2 时并未执行静态初始化块,而是执行普通初始化块和构造方法。

4、面向对象三大特征之封装

  • 说明

    将某些信息(一般是类的成员变量)隐藏在类中,只能通过本身类的方 法来访问或操作,外部程序不能访问
  • 好处

    1.隐藏类的细节,方便修改,符合高内聚低耦合的特点。
    2.能保护类的内部信息,也更安全
  • 3 步骤

    1. 体现隐藏,保护的作用  ---------用private 修饰类的成员变量
    2. 体现内部访问-----------------------用public getter/setter()方法来return成员变量
    3. 在public getter/setter()方法中加控制语句对属性值的合法性进行判断。因为这个方法类似可以看做是个输出的接口,输出当然要合法,所以在这里要判断。

5、package 包
体现封装的特性,类似名称空间。管理类就像文件夹管理文件。名字相同的类放在不同的包中就不同。同一个包内不能放名字相同的类。

  • 使用方法
    1. import + 包名(其实是类名)
      eg: import com.imooc.music.Myclass;
      import com.imooc.music.*; ( 这里的星号代表此包中的所有类)
    2. 包名规范都是小写

6、修饰符的范围
图片描述

7、this关键字

代表当前对象,用时是this.属性 (变量或方法)                    一般会在系统自动生成getter()和setter() 时使用,用来区分类的成员变量和方法的形参。

8、内部类

对于内部类,我的理解是还是体现封装性,保护内部数据访问权限,体现高内聚低耦合的特点。通过外部类的实例化对象来创建内部类的对象,可以理解为要受一点麻烦才能访问到内部类的数据。所以把private级别较高的数据就放到内部类里面。
eg:     helloworld hello = new helloworld(); // 创建外部类对象
        Inner i = hello.new Inner();// 创建内部类对象
        i.show(); // 调用内部类对象的方法
  • 成员内部类

    访问权限
    • Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等
    • Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性a
    • 外部类是不能直接使用内部类的成员和方法滴。通过内部类对象访问自己。
    • 编译程序后,会发现产生了两个 .class 文件
    • 如果外部类和内部类具有相同的成员变量或方法,内部类默认访问自己的成员变量或方法,如果要访问外部类的成员变量,可以使用 this 关键字。
      System.out.println("外部类name:" + HelloWorld.this.name );
      System.out.println("内部类name:" + name  );
    • 静态内部类

      是 static 修饰的内部类,(主要体现static的特点)特点如下:

  • 静态内部类不能直接访问外部类的非静态成员(与前面static讲的访问权限相同,可以被普通类访问,但不能访问别人。)

        可以通过 new 外部类().成员 的方式访问 
  • 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;
  • 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();

        (相比于非静态内部类,省略了new前面的外部类名)
     System.out.println("外部类 private成员"+new helloworld().a);
     System.out.println("静态内部类 成员"+score);
     System.out.println("外部类 静态成员"+helloworld.score);
    • 方法内部类
  1. 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用。不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 static 修饰符。
    1. 在方法内部,用内部类来创建对象,然后对象调用内部类方法,不能在外面使用。
打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP