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.调用本类构造器.
类是由对象抽象出来的.类是对象的模板,是用来描述对象的.
例如:书:书号
书名编号 作者
价钱...
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.调用本类构造器.
相关文章推荐
- 波哥学JAVA,定义类 声明属性 创建对象 实例化对象 对象调用属性或者方法
- 黑马程序员--java中父类和子类都有构造方法时,子类对象的初始化过程
- Java继承,子类实例化时,调用父类的无参构造方法
- Java第11次作业:什么是继承?继承的好处?什么是覆写?super()?构造代码块?子父类初始化顺序? 抽象类能用final声明吗?final关键字声明类 方法 变量以及全局常量?抽象类的构造方法?
- 18天Java学习---13.面向对象编程08-Java中继承的概念,子类实例化过程,super()及方法复写
- java继承,子类构造方法赋值给父类对象
- java(子类的继承及对象的构造过程)
- java继承时,实例化子类,是否会默认调用父类构造方法
- java通过反射,只需要传了类名和参数,就可以根据不同参数的构造方法实例化对象
- Lesson_for_java_day09--继承、实例化、构造方法、覆盖、重载、this关键字、super关键字、全局变量和局部变量
- JAVA基础-子类继承父类实例化对象过程
- 对象的初始化、继承时,对象的初始化过程、关于构造方法、抽象类……
- JAVA基础-子类继承父类实例化对象过程
- 嵌入式软件开发培训笔记——Java第三天(方法重载、对象的构造与初始化过程分析、封装等)
- 2018/01/08JAVA 基础 / 接口与继承/Java关键词:变量引用 super 调用父类对象方法/构造方法【或者访问父类对象属性】的方式归纳
- 关于Java中的继承,包括重写、构造器、访问权限、构造过程等知识总结
- Java学习笔记---13.面向对象编程08-Java中继承的概念,子类实例化过程,super()及方法复写
- java 继承体系对象的构造过程
- 1、c#中可以有静态构造方法,而java中没有,例如在单例模式中c#可以直接在静态构造中实例化对象,而java不可以
- Java对象的构造过程---子类继承父类时(非)静态块及构造函数等的执行顺序