java基础知识(续)

来源:互联网 发布:arcgis能安装在mac吗 编辑:程序博客网 时间:2024/06/09 22:33
/*
* 成员方法修饰符:主要有public、private、protect、final、
* static、abstract和synchronized 7种, 用来说明方法的访问权限。
*/

/**
*1.this 是Java的一个关键字,表示某个对象自身。
通过this可以使用当前对象的成员变量和方法。
        2.this只能用于方法内。当一个对象创建后,
      Java虚拟机就会给这个对象分配一个引用自身的对象,这个对象的名字就是 this。
        3.this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。
          4.this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this。
          5.表示对当前对象的引用。
 6.表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分。
 7.用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。
  但是这里必须非常注意:只能引用一个构造方法且必须位于开始。
          8.this不能用在static方法中。
*/
//方法重载:类中两个以上的同名方法,参数类型或个数不同,称为方法的重载。
//重载的方法之间可以互相调用

/**
* 在对象的生命周期中构造方法只会调用一次。
一个类中如果没有定义构造方法,Java编译器会自动为类产生一个默认的构造方法。
默认产生的构造方法是一个无参的,什么也不做的空方法,
只要类中有显示声明的构造方法,Java编译就不产生默认的构造方法。
* 在一个类中可以定义多个构造方法,但构造方法的参数列表不能相同。
*/

//封装的一个主要的好处,就是增加软件代码的内聚性。
//通过增加内聚性,进而提高可复用性和可维护性。
//信息隐藏是为了降低耦合性。通过降低耦合同可达到提高可复用性、可维护性这2个目的。
//通过类来实现封装,通过访问修饰符来实现信息隐藏。

/*4种访问权限修饰符(3个关键字)
Public
private
Protected
  缺省
* 不写访问权限(默认权限,或称包权限)
*/
/**
* public公共成员
成员方法或变量声明为public,称为公共成员
可以被所有的类访问的成员(前提所属类本身是可见的)
* private私有成员
不能被其所在类以外的任何类访问
声明为private的成员,称为私有成员
* protected保护成员
声明为protected的成员,称为保护成员
可以被同一包内的类访问和被子类继承
* 默认成员
没有任何修饰符的成员,称为默认成员
只能被同一包内的类访问
*/

//Java类库中几个重要的包
/*
*  java.lang
包含一些形成语言核心的类,如String、Math、Integer和Thread。
*  java.awt
包含了构成抽象窗口工具包(AWT)的类,这个包被用来构建和管理应用程序的图形用户界面。
*  java.applet
包含了可执行applet 特殊行为的类
*  java.net
包含执行与网络相关的操作的类和处理接口及统一资源定位器(URLs)的类。
*  java.io
包含处理I/O 文件的类。 
*  java.util
包含为任务设置的实用程序类,如随机数发生、定义系统特性和使用与日期日历相关的函数。 
*/

//final修饰符-修饰变量、方法、类
//常量
//最终方法:使用final声明的成员方法称为最终方法,最终方法不能被子类覆盖。
//最终类:使用关键字final声明的类称为最终类。最终类不能被继承,
//即不能声明最终类的子类。final修饰的类不能有子类
//final class 最终类名   extends 父类名
//{
// 成员变量;
// 成员方法;
// }



//static修饰符-修饰变量、方法、代码块
//静态域:如果将类中的域定义为static,则这个域属于这个类,
//而不属于这个类的某个对象。
//静态域的特点
//共有的类变量与对象无关,只和类有关。
//访问方式: 类名.属性名 。
//类变量是在类加载时被创建并被初始化,类的加载过程只执行一次,所以类变量只被创建一次。
//静态常量:如果一个域被定义为static final域,则这个域就是一个静态常量。
//静态方法:如果一个方法被定义为static类型,则这个方法就是一个静态方法。
/**
* 在静态方法里只能直接调用同类中其他的静态成员(包括变量和方法),
* 而不能直接访问类中的非静态成员。
* 静态方法不能以任何方式引用this和super关键字,因为静态方法在使用前
* 不用创建任何实例对象,当静态方法调用时,this所引用的对象根本没有产生
* (this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用)
*/

/*
* 从本质上讲,实例化子类对象时系统会先调用父类的构造方法,然后再调用子类的构造方法。
* JVM默认会调用父类中无参数的构造方法,若父类中没有无参数的构造方法,程序会报错。
*/
/*
* 调用父类的构造方法
使用super()、super(参数)的形式。
super()调用只能放在子类构造方法的第一行。
子类构造方法中没有显示调用父类构造方法,则默认调用父类的无参构造方法。
*/
0 0
原创粉丝点击