黑马程序员_面向对象(1)
2014-10-28 14:09
49 查看
------- android培训、java培训、期待与您交流! ----------
final 最终,修饰符
abstract 修饰类为抽象类
class 定义类
interface 定义接口
static 修饰类为静态
this 本类对象
super 父类对象
==================
1).面向对象
面向对象特点:它是一种思想,能让复杂问题简单化,角色转换,从执行者转换为指挥者
为了让问题简单化,需找一个对象,能描述的事物,就有对象。
类:对现一类事物的描述。
对象:就是这类事物的实例
类的属性,类的行为。
==================
2).用class定义类
定义一个类,就是描述一个类。
类的属性,行为就是成员变量和方法。
描述汽车:
属性:颜色,车轮
行为:跑
Car c = new Car();生产汽车。c就是一个名称。类类型变量。指向对象。
栈内存:存放引用。地址值。
堆内存:存放对象,成员。
new 在内存中产生一个新对象
==================
3).成员变量和局部变量。
它们的作用范围不同。在内存中的位置不同。
成员变量:在堆内存中,因为对象 的存在,才在内存中存在。作用于整个类。
局部变量:在栈内存中,作用于局部
==================
4).匿名对象
1.匿名对象只使用一次
2.调用匿名方法有意义,调用匿名属性没有意义。
匿名对象两种使用情况:
1.当对象方法只进行一次调用的时候使用匿名对象可以简化书写。new Car().run();
2.匿名对象可以作为实际参数进行传递。show(new Car());
==================
5).构造函数
特点:
1.函数名与类名相同
2.不用定义返回值类型
3.不可以写return语句
作用:
给对象进行初始化。*对象一建立,就调用对应的构造函数*。
注意:
1.默认构造函数的特点。
2.多个构造函数是以重载的形式存在的。
3.当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数Person(){}
4.当类中自定义了构造函数后,默认的构造函数就没有了。
构造函数和一般函数:
1.写法上和运行上都不同。
2.对象一建立构造函数就运行,给对象初始化。
3.一般方法是对象调用才执行,是给对象添加对象具备的功能。
4.对象建立后,构造函数只运行一次。一般函数可以被对象调用多次
什么时候定义构造函数?
分析事物时,事物具有一些特性或者行为,那么这些特性或行为定义在构造函数中
==================
6).构造代码块
格式:
作用:
1.给对象进行初始化。
2.对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
1.构造代码块是给所有对象初始化。
2.构造函数是给对应的对象初始化。
静态代码块。
1.格式:
2.特点:随着类的加载而执行,只执行一次,并优先于主函数。
3.用于给类进行初始化的。
==================
7).this和super
this代表的是本类对象的引用。
super代表的是父类对象的引用。
super的使用和this的使用几乎一致。
如果子类中出现非私有的同名成员变量时,
子类要访问本类中的变量,用this
子类要访问父类中的同名变量,用super。
==================
8).子父类中的构造函数
1.子类对象进行初始化时,父类的构造函数也会运行,
2.子类的构造函数默认第一行有一条隐式的语句 super();
3.super():会访问父类中空参数的构造函数。
4.子类所有的构造函数默认第一行都是super();
为什么子类一定要访问父类中的构造函数。
1.子类可以直接获取父类数据。所以建立子类对象时,先看父类如何进行数据初始化的。
2.所以子类对象初始化时,要先访问父类中的构造函数。
3.通过手动定义super语句的方式,来访问父类中指定的构造函数
子类的实例化过程。
1.子类的所有构造函数,默认都会访问父类中无参构造函数。因为其中有隐式super()
2.父类中没有无参构造函数,子类必须手动通过super语句,指定要访问的父类构造函数。
3.子类至少有一个构造函数会访问父类中的构造函数。
==================
9).final : 最终。是一个修饰符.
1.可以修饰类,函数,变量。
2.final修饰的类不能被继承。为了避免子类继承,复写功能。
3.final修饰的方法不能被复写。
4.final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。
有数据的值是固定的,为了增强阅读性,都给这些值起个名字。方便于阅读。
用final修饰这个值,作为常量:常量的书写规范所有字母都大写,如果由多个单词组成。
单词间通过_连接。如:MAX_VALUE
5,内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
==================
10).static:是一个修饰符,用于修饰成员(成员变量,成员函数)。
static特点:
1.随着类的加载而加载。静态会随着类的消失而消失。生命周期最长
2.优先于的对象存在
3.被所有对象所共享
4.可以直接被类名所调用。
静态成员的调用方式:
1.被对象调用外,
2.直接被类名调用(类名.静态成员)。
实例变量和类变量的区别:
1.存放位置:
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2.生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
使用静态注意:
1.静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。
2.静态方法中不能定义this,super关键字。因为静态是优先于对象存在。
3.主函数是静态的。
静态利与弊:
好处:
1.将对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份。
2.可以直接被类名调用。
弊端:
1.生命周期过长。
2.访问出现局限性。(静态只能访问静态)
何时使用静态:
1.什么时候定义静态变量(类变量)呢?
答:当对象中出现共享数据时,该数据被静态所修饰。
对象中的特有数据要定义成非静态存在于堆内存中。
2.什么时候定义静态函数呢?
答:当函数内部没有访问到非静态数据(对象的特有数据),
静态访问一个数据,则该数据必须定义为静态。
而对象特有数据是非静态的。
final 最终,修饰符
abstract 修饰类为抽象类
class 定义类
interface 定义接口
static 修饰类为静态
this 本类对象
super 父类对象
==================
1).面向对象
面向对象特点:它是一种思想,能让复杂问题简单化,角色转换,从执行者转换为指挥者
为了让问题简单化,需找一个对象,能描述的事物,就有对象。
类:对现一类事物的描述。
对象:就是这类事物的实例
类的属性,类的行为。
==================
2).用class定义类
定义一个类,就是描述一个类。
类的属性,行为就是成员变量和方法。
描述汽车:
属性:颜色,车轮
行为:跑
class Car{ String color = "white"; int num = 4; void run(){ System.out.println("run"); } }
Car c = new Car();生产汽车。c就是一个名称。类类型变量。指向对象。
栈内存:存放引用。地址值。
堆内存:存放对象,成员。
new 在内存中产生一个新对象
==================
3).成员变量和局部变量。
class Test{ int num = 20;//成员变量 for(int i =0; i<4; i++){//局部变量 System.out.println(i); } }
它们的作用范围不同。在内存中的位置不同。
成员变量:在堆内存中,因为对象 的存在,才在内存中存在。作用于整个类。
局部变量:在栈内存中,作用于局部
==================
4).匿名对象
1.匿名对象只使用一次
2.调用匿名方法有意义,调用匿名属性没有意义。
匿名对象两种使用情况:
1.当对象方法只进行一次调用的时候使用匿名对象可以简化书写。new Car().run();
2.匿名对象可以作为实际参数进行传递。show(new Car());
==================
5).构造函数
特点:
1.函数名与类名相同
2.不用定义返回值类型
3.不可以写return语句
作用:
给对象进行初始化。*对象一建立,就调用对应的构造函数*。
注意:
1.默认构造函数的特点。
2.多个构造函数是以重载的形式存在的。
3.当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数Person(){}
4.当类中自定义了构造函数后,默认的构造函数就没有了。
构造函数和一般函数:
1.写法上和运行上都不同。
2.对象一建立构造函数就运行,给对象初始化。
3.一般方法是对象调用才执行,是给对象添加对象具备的功能。
4.对象建立后,构造函数只运行一次。一般函数可以被对象调用多次
什么时候定义构造函数?
分析事物时,事物具有一些特性或者行为,那么这些特性或行为定义在构造函数中
==================
6).构造代码块
格式:
{ //定义的是不同对象共性的初始化内容 }
作用:
1.给对象进行初始化。
2.对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
1.构造代码块是给所有对象初始化。
2.构造函数是给对应的对象初始化。
静态代码块。
1.格式:
static { 静态代码块中的执行语句。 }
2.特点:随着类的加载而执行,只执行一次,并优先于主函数。
3.用于给类进行初始化的。
==================
7).this和super
this代表的是本类对象的引用。
super代表的是父类对象的引用。
super的使用和this的使用几乎一致。
如果子类中出现非私有的同名成员变量时,
子类要访问本类中的变量,用this
子类要访问父类中的同名变量,用super。
==================
8).子父类中的构造函数
1.子类对象进行初始化时,父类的构造函数也会运行,
2.子类的构造函数默认第一行有一条隐式的语句 super();
3.super():会访问父类中空参数的构造函数。
4.子类所有的构造函数默认第一行都是super();
为什么子类一定要访问父类中的构造函数。
1.子类可以直接获取父类数据。所以建立子类对象时,先看父类如何进行数据初始化的。
2.所以子类对象初始化时,要先访问父类中的构造函数。
3.通过手动定义super语句的方式,来访问父类中指定的构造函数
子类的实例化过程。
1.子类的所有构造函数,默认都会访问父类中无参构造函数。因为其中有隐式super()
2.父类中没有无参构造函数,子类必须手动通过super语句,指定要访问的父类构造函数。
3.子类至少有一个构造函数会访问父类中的构造函数。
==================
9).final : 最终。是一个修饰符.
1.可以修饰类,函数,变量。
2.final修饰的类不能被继承。为了避免子类继承,复写功能。
3.final修饰的方法不能被复写。
4.final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,又可以修饰局部变量。
有数据的值是固定的,为了增强阅读性,都给这些值起个名字。方便于阅读。
用final修饰这个值,作为常量:常量的书写规范所有字母都大写,如果由多个单词组成。
单词间通过_连接。如:MAX_VALUE
5,内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量。
==================
10).static:是一个修饰符,用于修饰成员(成员变量,成员函数)。
static特点:
1.随着类的加载而加载。静态会随着类的消失而消失。生命周期最长
2.优先于的对象存在
3.被所有对象所共享
4.可以直接被类名所调用。
静态成员的调用方式:
1.被对象调用外,
2.直接被类名调用(类名.静态成员)。
实例变量和类变量的区别:
1.存放位置:
类变量随着类的加载而存在于方法区中。
实例变量随着对象的建立而存在于堆内存中。
2.生命周期:
类变量生命周期最长,随着类的消失而消失。
实例变量生命周期随着对象的消失而消失。
使用静态注意:
1.静态方法只能访问静态成员,非静态方法既可以访问静态也可以访问非静态。
2.静态方法中不能定义this,super关键字。因为静态是优先于对象存在。
3.主函数是静态的。
静态利与弊:
好处:
1.将对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份。
2.可以直接被类名调用。
弊端:
1.生命周期过长。
2.访问出现局限性。(静态只能访问静态)
何时使用静态:
1.什么时候定义静态变量(类变量)呢?
答:当对象中出现共享数据时,该数据被静态所修饰。
对象中的特有数据要定义成非静态存在于堆内存中。
2.什么时候定义静态函数呢?
答:当函数内部没有访问到非静态数据(对象的特有数据),
静态访问一个数据,则该数据必须定义为静态。
而对象特有数据是非静态的。
相关文章推荐
- 黑马程序员面向对象-----多态
- 黑马程序员_匿名内部类和面向对象总结
- 黑马程序员——Java要点笔记——面向对象(三)
- 黑马程序员——第7天——(面向对象)继承,final关键字,抽象类,接口
- 黑马程序员 JAVA初级-面向对象 匿名对象、封装、构造函数、构造代码块、this
- 【黑马程序员】方法、数组、面向对象、封装、继承——Java复习笔记
- 黑马程序员 Java面向对象——集合框架(Collection)
- 黑马程序员-iOS学习日记(五)面向对象-self和super关键字
- 黑马程序员之C#学习笔记:面向对象
- 黑马程序员_面向对象1
- 黑马程序员_面向对象
- 黑马程序员_面向对象
- 黑马程序员---面向对象的三大特征是什么??
- 黑马程序员——java基础_面向对象
- 黑马程序员——面向对象(多态,内部类、异常、包)
- 黑马程序员_面向对象_静态&单例
- 黑马程序员——Java基础——面向对象(1)封装
- 黑马程序员——java第七天:面向对象(继承、子父类之变量、final、抽象、模板方法、接口)
- 黑马程序员 Java面向对象(异常)
- java--面向对象(4)--黑马程序员