您的位置:首页 > 编程语言 > Java开发

Java知识点整理:第五章:类的声明,构造方法,方法,继承中的构造器,对象实例化过程

2016-11-09 22:25 393 查看
 1.类的声明:
           类是由对象抽象出来的.类是对象的模板,是用来描述对象的.
           例如:书:书号 
书名编号 作者 
价钱...
          1.)变量的类型:
基本类型(8个基本数据类型)--->保存一个具体的数值
引用类型(非基本数据类型)--->保存对象的地址值
          2.)变量的分配:
 基本类型:根据数据类型决定。
 引用类型:引用类型占用的空间大小和值
 
得管理是不可见的(透明的).
 
由java系统管理
             3.) 对象的分配:
 
对象在堆中分配.
 
分配空间的大小由类中声明的属性来决定.
            对象的属性默认自动初始化
 对象创建出来以后,会把对象的属性赋初始值.
2.Java中的构造方法(构造器)

1.)java中的构造器声明在类的内部,方法名与类名是一致的。
         构造方法不能声明返回值类型.

 构造方法可以包含参数,参数一般是创建对象实例必须很依赖的条件。

 构造方法是通过new关键字调用的.
 

注意:

 没有参数的构造方法是默认的构造方法

 如果程序员没有显示的写出来,系统会自动提供一个默认的构造方法.

 当显示的写出了一个构造器(不管有没有参数)系统不会再提供无参数的构造器.
例如:        Point{

public Point(参数){

}
                      }
2.)this关键字:

   this代表当前对象的引用.是运行期间当前对象本身。

   通过this明确的访问当前对象的属性或者方法

   this()可以调用本类的其他构造方法.

   this()必须写到构造方法的第一行.
   3.)构造方法的重载:

在一个类中,定义了多个方法名相同但是参数列表不同的方法.

           可以通过重载简化代码的实现.
        对象的方法.

方法表示对象的功能,依赖于对象存在,对象的方法在定义的时候不用static
修饰(先记住)
        方法的重载:

在一个类中,写了多个方法名相同,参数列表不同的方法,这种现象就叫方法的重载.
  
     可以通过方法的重载实现代码的重用.方法的重载现象可以满足调用的时候的不同情况.
3.方法
 1.方法签名

方法名+参数列表

在一个java类中,

不能存在方法签名相同的方法。
   方法的重载:

方法名一样,方法签名是不一样的多个方法.

例如:public void a(int b){}

             public void a(int c){}
 2.方法的调用原则

就近调用

java尽可能采用简单的转换原则.

char-->int--->long
 
3.java方法参数的传递规则

java中参数的传递规则是:基于值的传递

基本类型:传递具体的值

引用类型:传递引用地址

int a = 5 ;

Point p = new Point();  p-->@6ecd6
 
4.继承:

用来表达概念上具体化延续的具体概念.
           子类继承父类的属性和方法

构造器是不能继承的
 

继承的语法:

   extends实现继承

   A  extends B

继承的好处:

实现代码的重用.

实现多态的现象.
 

多态

父类的引用变量指向子类的对象.
 
      子类是父类.

Dog extends Animal

狗是动物
 

编译期

看声明的类是声明类型.

Question q ;

q就是Question类型
 

运行期

看具体的对象

Question q = new SingleQuestion();

           编译期q是Question类型

运行期间q引用的是子类的对象

因此调用方法的时候调用的是子类的对象.

Question q = new SingleQuestion();

q.check(); 运行的时候调用的是SingleQuestion类中的check方法

Question q = new MultChoiceQuestion();

q.check();运行的时候调用的是MultChoiceQuestion类中的check方法.

4.继承器中的构造器

 * 1.子类一定调用父类的构造器
 *        
在子类的构造器中通过super()来调用父类的构造器
 * 2.子类默认调用父类的无参数构造器

 * 3.如果父类中没有无参数的构造器,那么在子类的构造器中
 *  
需要通过super(参数)去调用父类的有参数构造器,不管怎么着,子类必须要调到父类中的某一个构造器.
 * 4.this()  super()
都必须要写到构造器的第一行
 *  
因此this() super()
不能同时出现在一个构造器中.
5.对象的实例化过程

1.在创建对象之前,首先会检查此类是否被加载.(就是将硬盘上的XXX.class文件加载到内存中),如果没有加载就加载这个类,并且在这个类, 被加载之前要加载所有的父类.
2.在内存中分配对象空间,递归分配所有父类和子类属性空间。
 
属性默认自动初始化为对应类型的初始值.
           3.给属性进行赋值
4.递归调用父类构造器
5.调用本类构造器.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐