码迷,mamicode.com
首页 > 编程语言 > 详细

java学习笔记(七)类的高级概念

时间:2015-04-26 21:10:10      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:

类的高级概念包括:访问修饰符、封装、静态成员、初始化块以及内部类等混合内容。

访问修饰符:

(1).公开访问级别:使用public关键字修饰。用public关键字修饰的成员对外公开,即公开成员可以被任何其它对象访问。

(2).受保护访问级别:使用protected关键字修饰。受保护的成员可以被同一包中的类所访问,还可以被类的子类所访问,不管子类是在哪个包中。

(3).默认访问级别:没有访问修饰符。默认访问级别的成员可以被同一包中的其它类所访问。

(4).私有访问级别:使用private关键字修饰。它是四种访问修饰符中级别最低的。私有成员只有类本身可以访问,不对外公开。

类本身也有访问修饰符。但是累的访问修饰符只有公有的和默认的两种。

封装:封装是使类中的成员变量都是private,并提供public方法访问这些成员变量的技术。如果一个成员变量被声明为private,那么它就不能被其它类访问,从而隐藏了类中的成员变量。因此封装也被称为数据隐藏。

继承、封装、多态、抽象是面向对象编程的四大基本概念。

允许获取成员变量的get方法称为访问器(accessor)方法,允许修改成员变量的get方法称为修改器(mutator)方法。

public class SalesPerson{

      private String name;

      private int id;

      //无参构造器

     public SalesPerson(){

      }

      //有参构造器

      public SalesPerson(String name,int id){

             super();

             this.name = name;

             this.id = id;

      }

      public void setName(String name){

             name = name;

       }

       public void getName(){

              return name;

       }

       

       public void setId(int id){

             id=id;

       }

       public void getName(){

              return id;

       }

}

在写get(),set()方法时注意命名的方式,一般在应用程序上有自动生成这些方法的操作。

封装的好处:类的成员变量可以成为只读或者只写的;类可以对存储在其成员变量中的内容有一个整体的控制;类的用户不需要知道类是如何存储数据的,实现代码的重用。

静态成员:关键字static允许成员变量或方法不与类的特定实例关联。通过关键字static声明的成员变量或方法可以被认为是全局的,任何其它类可以直接访问静态成员变量或调用静态方法,而不需要该类的一个实例。

类的静态成员经常被称为类成员,因为静态成员与类相关,而不是某个实例。非静态的成员变量和方法经常被称为实例成员,因为非静态的成员变量和方法只存在于类的实例中。

静态方法不能访问非静态成员。

实例初始化块:

/**

*父类

*/

public class Electronics{

     public Electronics(){

            System.out.println("构造一个电子设备");

     }

}

 

/**

*实例初始化块

*/

public class CDPlayer extends Electronics{

       private int songNumber;

       public CDPlayer(int x){

              super();

              System.out.println("构造一个CD播放机");

              songNumber=x;

       }

   {

         System.out.println("在实例初始化块内");

    }

}

 

/**

*运行

*/

public class InstanceInitDemo{

      public static void main(String [] , args){

             System.out.println("在main方法内");

             CDPlayer  c1 = new CDPlayer (1);

             CDPlayer  c2 = new CDPlayer (7);

      }

}

发生顺序:

子类中相应的构造器被调用;执行对super的调用,控制流程跳转到相应的父类构造器;父类构造器执行完,控制流程跳转回子类构造器;在该子类构造器中的super()后面的任何语句执行前,实例初始化块执行;最后,执行子类构造器中super()后面的语句。

内部类:

静态内部类:作为类的静态成员,存在于某个类的内部;

成员内部类:作为类的成员,存在于某个类的内部;

局部内部类:存在于某个方法内部的类;

匿名内部类:存在于某个类的内部,但是无类名的类。

java学习笔记(七)类的高级概念

标签:

原文地址:http://www.cnblogs.com/fping/p/4456825.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!