黑马程序员—Java入门学习日记基础篇-面向对象总结1
2014-12-25 11:16
197 查看
------- android培训、java培训、期待与您交流! ----------
Java面向对象编程知识点总结。
一:单例设计模式。
何为单例设计模式,单例设计模式是指为解决一个类在内存中只有一个对象,保证对象唯一的一种设计方法。
单例设计模式的的设计规则如下:
为避免其他程序过多的简历对象,先禁止其他程序建立该对象。
为了让其他程序可以访问到该对象,只好在本类中自定义一个对象。
为了方便其他程序对自定义对象访问,可以对外提供一些访问方式。
实现的方式:
首先将构造函数私有化。
在类中创建一个本类对象。
对外提供一个方法可以获取到该对象。
单例设计模式有两种方式:
*饿汉式(此方式较多被用作开发)
class Single
{ private static String name;
//将构造函数私有化,外部将无法实例化对象
privateSingle(String name)
{
this.name= name;
}
//在本类中实例化对象,并声明为静态因为外部只能通过类名的方式调用。
private static Single s = newSingle("在本类中实例化对象饿汉模式");
//对外界提供的获取对象的方法
publicstatic Single getInstance()
{ System.out.println(name);
returns;
}
}
class hungryMan
{
publicstatic void main(String[] args)
{ //通过类名调用获取对象的方法获取对象
Singleinstance = Single.getInstance();
}
}
最终输出的是:在本例中实例化对象饿汉模式。
*懒汉式:对象方法被调用时才初始化。
class Single
{ private static String name;
//将构造函数私有化,外部将无法实例化对象
privateSingle(String name)
{
this.name= name;
}
//在本类中实例化对象,并声明为静态因为外部只能通过类名的方式调用。
privatestatic Single s = null;
//对外界提供的获取对象的方法
publicstatic Single getInstance()
{ if(s == null)
s= new Single("单例设计模式懒汉式");
returns;
}
}
class hungryMan
{
publicstatic void main(String[] args)
{ //通过类名调用获取对象的方法获取对象
Singleinstance = Single.getInstance();
}
}
第二.继承。
继承的作用:
提供了代码的重用性。
让类与类产生了关系才产生了多态的特性。
千万不要只为获取其他类的功能而继承,必须是类与类之间有所属关系才继承。
父类的抽取方法:
实例如下图:
Java语言中继承的规则:
JAVA语言中只支持单继承关系也就是一个子类只能继承自一个父类。
Java语言不使用多继承的原因:当多个父类中定义了相同的功能,当功能内容不同时,创建的对象不知道该运行哪一个方法。
如下所示:
classA class B
{ {
Void show() Void show()
{ {
S.o.P(“I am A”); S.o.P(“I am B”);
} }
} }
假如Java中支持多继承
Class Son extends A,B
{
Son son = new Son();
son.show();//此时不知道该执行哪一个父类中的方法。
}
第三:Java支持多层继承,也就是说可以形成一个继承体系。
这里说一下查看JDKAPI的方法:
使用体系时先查看体系父类的描述,因为父类中定义的是该体系的共性功能,通过了解共性功能既可以了解到该体系的基本功能。那么就可对这个体系基本使用了。
在具体调用时要创建最子类的对象,因为父类可能不能创建对象,而且加入B类继承自A类,C类继承自B类。如图:
如给C类创建对象,就可以使用A类和B类中的功能,扩展了更多的功能。
第二.子父类出现后类中的成员变化。
变量:super指向父类的引用,引用父类中同名的属性。
this是指对指向的实例化对象的引用。
函数方法:重写(overwrite)覆盖父类的方法,条件是:当子类出现与父类相同的方法,当要求实现功能不同时,可以对父类的相同的方法的函数体进行重写。在子类建立对象时,子类对象会调用被重写的方法,而不再调用父类的方法。(重写的条件:1.必须保证其方法权限大于父类权限如:defualt子类为Public可以调用。2.静态方法只能重写静态方法。)
构造函数:
建立子类对象时,子类会继承父类的构造函数,并在对象初始化时先于子类的构造函数运行。因为子类的构造函数体内默认第一行有一条隐式语句super()(此方法为调用父类的构造函数的方法。与this()类似。),super会访问父类中空参数的构造函数。而且子类构造函数默认第一行都是super()语句。当父类中没有空参数的构造函数时,子类中必须在子类构造函数的第一行手动添加super(xx);语句来指定要访问的父类的构造函数。子类中的第一行也可以手动添加this()语句来访问本类中的构造函数,子类中至少会有一个构造函数访问父类的构造函数。
第三.final关键字。
可以修饰类、方法、变量。
通过final修饰的类不可以被继承,是为了避免被子类修改功能因为此类是最终版的类。
被final修饰的方法不能被重写。
被final修饰的变量是一个常量(相当于c++中的常变量),只能赋值一次,而且在程序运行时不能改变。他可以修饰成员变量也可以修饰局部变量。用法是当描述一些事物时,其中的一些数据时固定的,那么这时为了增强可读性,就给这些值起个名字,方便阅读。
如:final int PI(final修饰的类型必须全大写,多单词则用下划线连接起来如PI_MATH)。
今天就总结到这儿了,有什么可以探讨或者笔者有理解的错误或笔误请大家积极留言指正。
Java面向对象编程知识点总结。
一:单例设计模式。
何为单例设计模式,单例设计模式是指为解决一个类在内存中只有一个对象,保证对象唯一的一种设计方法。
单例设计模式的的设计规则如下:
为避免其他程序过多的简历对象,先禁止其他程序建立该对象。
为了让其他程序可以访问到该对象,只好在本类中自定义一个对象。
为了方便其他程序对自定义对象访问,可以对外提供一些访问方式。
实现的方式:
首先将构造函数私有化。
在类中创建一个本类对象。
对外提供一个方法可以获取到该对象。
单例设计模式有两种方式:
*饿汉式(此方式较多被用作开发)
class Single
{ private static String name;
//将构造函数私有化,外部将无法实例化对象
privateSingle(String name)
{
this.name= name;
}
//在本类中实例化对象,并声明为静态因为外部只能通过类名的方式调用。
private static Single s = newSingle("在本类中实例化对象饿汉模式");
//对外界提供的获取对象的方法
publicstatic Single getInstance()
{ System.out.println(name);
returns;
}
}
class hungryMan
{
publicstatic void main(String[] args)
{ //通过类名调用获取对象的方法获取对象
Singleinstance = Single.getInstance();
}
}
最终输出的是:在本例中实例化对象饿汉模式。
*懒汉式:对象方法被调用时才初始化。
class Single
{ private static String name;
//将构造函数私有化,外部将无法实例化对象
privateSingle(String name)
{
this.name= name;
}
//在本类中实例化对象,并声明为静态因为外部只能通过类名的方式调用。
privatestatic Single s = null;
//对外界提供的获取对象的方法
publicstatic Single getInstance()
{ if(s == null)
s= new Single("单例设计模式懒汉式");
returns;
}
}
class hungryMan
{
publicstatic void main(String[] args)
{ //通过类名调用获取对象的方法获取对象
Singleinstance = Single.getInstance();
}
}
第二.继承。
继承的作用:
提供了代码的重用性。
让类与类产生了关系才产生了多态的特性。
千万不要只为获取其他类的功能而继承,必须是类与类之间有所属关系才继承。
父类的抽取方法:
实例如下图:
Java语言中继承的规则:
JAVA语言中只支持单继承关系也就是一个子类只能继承自一个父类。
Java语言不使用多继承的原因:当多个父类中定义了相同的功能,当功能内容不同时,创建的对象不知道该运行哪一个方法。
如下所示:
classA class B
{ {
Void show() Void show()
{ {
S.o.P(“I am A”); S.o.P(“I am B”);
} }
} }
假如Java中支持多继承
Class Son extends A,B
{
Son son = new Son();
son.show();//此时不知道该执行哪一个父类中的方法。
}
第三:Java支持多层继承,也就是说可以形成一个继承体系。
这里说一下查看JDKAPI的方法:
使用体系时先查看体系父类的描述,因为父类中定义的是该体系的共性功能,通过了解共性功能既可以了解到该体系的基本功能。那么就可对这个体系基本使用了。
|
|
|
如给C类创建对象,就可以使用A类和B类中的功能,扩展了更多的功能。
第二.子父类出现后类中的成员变化。
变量:super指向父类的引用,引用父类中同名的属性。
this是指对指向的实例化对象的引用。
函数方法:重写(overwrite)覆盖父类的方法,条件是:当子类出现与父类相同的方法,当要求实现功能不同时,可以对父类的相同的方法的函数体进行重写。在子类建立对象时,子类对象会调用被重写的方法,而不再调用父类的方法。(重写的条件:1.必须保证其方法权限大于父类权限如:defualt子类为Public可以调用。2.静态方法只能重写静态方法。)
构造函数:
建立子类对象时,子类会继承父类的构造函数,并在对象初始化时先于子类的构造函数运行。因为子类的构造函数体内默认第一行有一条隐式语句super()(此方法为调用父类的构造函数的方法。与this()类似。),super会访问父类中空参数的构造函数。而且子类构造函数默认第一行都是super()语句。当父类中没有空参数的构造函数时,子类中必须在子类构造函数的第一行手动添加super(xx);语句来指定要访问的父类的构造函数。子类中的第一行也可以手动添加this()语句来访问本类中的构造函数,子类中至少会有一个构造函数访问父类的构造函数。
第三.final关键字。
可以修饰类、方法、变量。
通过final修饰的类不可以被继承,是为了避免被子类修改功能因为此类是最终版的类。
被final修饰的方法不能被重写。
被final修饰的变量是一个常量(相当于c++中的常变量),只能赋值一次,而且在程序运行时不能改变。他可以修饰成员变量也可以修饰局部变量。用法是当描述一些事物时,其中的一些数据时固定的,那么这时为了增强可读性,就给这些值起个名字,方便阅读。
如:final int PI(final修饰的类型必须全大写,多单词则用下划线连接起来如PI_MATH)。
今天就总结到这儿了,有什么可以探讨或者笔者有理解的错误或笔误请大家积极留言指正。
相关文章推荐
- 黑马程序员—Java入门学习日记基础篇-面向对象总结3
- 黑马程序员—Java入门学习日记基础篇-面向对象总结4
- 黑马程序员-面向对象-08天-3 (总结)
- 黑马程序员--03.面向对象--03.子类父类方法重写和覆盖的理解【个人总结】
- 黑马程序员_C#面向对象学习知识总结2
- 黑马程序员-面向对象总结
- 黑马程序员_面向对象学习总结(二)
- 黑马程序员----面向对象总结一
- 黑马程序员—java面向对象总结(4)—内部类、异常
- 黑马程序员_C#面向对象知识总结3
- 黑马程序员--03.面向对象--02.子类和父类成员变量的关系【个人总结】
- 黑马程序员 面向对象总结
- 黑马程序员_Java学习日记4_面向对象总结3
- 黑马程序员--03.Java面向对象--05.子类对象初始化的过程【个人总结】
- 黑马程序员 面向对象 异常总结
- 黑马程序员--03.面向对象--01.静态方法调用非静态成员【个人总结】
- 黑马程序员----面向对象总结二
- 黑马程序员_Java学习日记2_面向对象总结1
- 黑马程序员_Java学习日记3_面向对象总结2
- 黑马程序员—java面向对象总结(1)