黑马程序员_面向对象
2013-03-20 16:33
183 查看
-------
android培训、java培训、期待与您交流!
1.构造函数:
构造函数的作用:用于对象的初始化
构造函数的特点:构造函数必须与类名相同,没有返回值类型;构造函数一建立就运行,给对象初始化;一个对象建立后,构造函数只运行一次(而一般函数可以被多次调用)
注意:当一个类没有定义构造函数时,系统会默认给定义个空的构造函数。构造函数和一般函数一样,也可以进行重载
如:
class Person
{
String name;
int age;
//下面定义的就是一个带参数的构造函数
Person(String name)
{
this.name=name;
}
//重载的构造函数
Person(String name,int age)
{
this.name=name;
this.age=age;
}
}
2.static修饰符
static是一个修饰符,用于修饰成员(成员变量和成员函数),当成员被static修饰后,既可以被对象调用,又可以被类直接调用,如
类名.静态成员,用static修饰的方法是静态方法,静态方法中只能调用静态数据,不能直接调用非静态数据,也不能使用this和super关键字
staic修饰的变量是类变量,不用static修饰的变量为实例变量,类变量随着类的加载而存在于方法区中,随着类的消失而消失;实例变量
随着对象的建立存在于堆内存中,随着对象的消失而消失。
静态代码块 static{........},随着类的加载而执行,只执行一次,用于给类进行初始化,并优先于主函数运行
3.抽象类 abstract
当多个类中出现相同的功能,但是功能主体不同,这个时候可以进行向上抽取,这个时候只抽取功能定义,不抽取功能主体
抽象类的特点:抽象方法一定存在于抽象类中;抽象类不能用new创建对象,因为抽象方法没有意思;抽象类中的方法要被使用,必须在
子类中覆写所有的抽象方法,建立子类对象进行调用,如果子类只是实现了抽象类的一部分抽象方法,那么这个子类还是一个抽象类,还是不
能够建立对象,抽象类不可以实例化。
abstract class Person
{
abstract void eat();
}
4.接口 interface
接口中的成员都有固定的修饰符,常量:public static final,方法:public abstract,接口中的成员的修饰符都是public,接口不能被实例化,因为接口中的方法都是抽象方法,这些方法必须在子类中进行实现,对子类进行实例化,然后调用这些方法,一个子类可以实现多个接口
接口的特点:接口是对外暴漏的规则;接口是程序的功能扩展;接口可以用来多实现;类与接口之间是实现的关系,而且类可以在继承一个类的同时实现多个接口;接口与接口之间可以有继承关系;基本功能定义在抽象类中,扩展功能定义在接口中
Interface Person
{
abstract void eat();
}
class Student implements Person
{
public void eat()//注意:这里的修饰符必须是public,因为接口中的方法的修饰符默认都是public,子类中实现接口中的方法时,修饰符的作用范围必须要大于接口中方法修饰符的作用范围
{
System.out.println("吃饭");
}
}
android培训、java培训、期待与您交流!
1.构造函数:
构造函数的作用:用于对象的初始化
构造函数的特点:构造函数必须与类名相同,没有返回值类型;构造函数一建立就运行,给对象初始化;一个对象建立后,构造函数只运行一次(而一般函数可以被多次调用)
注意:当一个类没有定义构造函数时,系统会默认给定义个空的构造函数。构造函数和一般函数一样,也可以进行重载
如:
class Person
{
String name;
int age;
//下面定义的就是一个带参数的构造函数
Person(String name)
{
this.name=name;
}
//重载的构造函数
Person(String name,int age)
{
this.name=name;
this.age=age;
}
}
2.static修饰符
static是一个修饰符,用于修饰成员(成员变量和成员函数),当成员被static修饰后,既可以被对象调用,又可以被类直接调用,如
类名.静态成员,用static修饰的方法是静态方法,静态方法中只能调用静态数据,不能直接调用非静态数据,也不能使用this和super关键字
staic修饰的变量是类变量,不用static修饰的变量为实例变量,类变量随着类的加载而存在于方法区中,随着类的消失而消失;实例变量
随着对象的建立存在于堆内存中,随着对象的消失而消失。
静态代码块 static{........},随着类的加载而执行,只执行一次,用于给类进行初始化,并优先于主函数运行
3.抽象类 abstract
当多个类中出现相同的功能,但是功能主体不同,这个时候可以进行向上抽取,这个时候只抽取功能定义,不抽取功能主体
抽象类的特点:抽象方法一定存在于抽象类中;抽象类不能用new创建对象,因为抽象方法没有意思;抽象类中的方法要被使用,必须在
子类中覆写所有的抽象方法,建立子类对象进行调用,如果子类只是实现了抽象类的一部分抽象方法,那么这个子类还是一个抽象类,还是不
能够建立对象,抽象类不可以实例化。
abstract class Person
{
abstract void eat();
}
4.接口 interface
接口中的成员都有固定的修饰符,常量:public static final,方法:public abstract,接口中的成员的修饰符都是public,接口不能被实例化,因为接口中的方法都是抽象方法,这些方法必须在子类中进行实现,对子类进行实例化,然后调用这些方法,一个子类可以实现多个接口
接口的特点:接口是对外暴漏的规则;接口是程序的功能扩展;接口可以用来多实现;类与接口之间是实现的关系,而且类可以在继承一个类的同时实现多个接口;接口与接口之间可以有继承关系;基本功能定义在抽象类中,扩展功能定义在接口中
Interface Person
{
abstract void eat();
}
class Student implements Person
{
public void eat()//注意:这里的修饰符必须是public,因为接口中的方法的修饰符默认都是public,子类中实现接口中的方法时,修饰符的作用范围必须要大于接口中方法修饰符的作用范围
{
System.out.println("吃饭");
}
}
相关文章推荐
- 黑马程序员---面向对象之"抽象类"
- 黑马程序员-Java面向对象-day07
- 黑马程序员_OC面向对象思想和类的创建
- 黑马程序员_面向对象中继承的相关知识
- 黑马程序员---面向对象(二)
- 黑马程序员————学习日记【5】 【Java面向对象1】
- 黑马程序员--面向对象基础:属性和方法
- 黑马程序员---面向对象上(封装,继承,多态)
- 黑马程序员_面向对象
- 黑马程序员-------java面向对象部分
- 黑马程序员-OC语言基础:面向对象语法 三
- 黑马程序员_java基础笔记(03)...面向对象
- 黑马程序员--面向对象模板方法模式
- 黑马程序员——java面向对象-继承
- 黑马程序员——Objective-C之面向对象基础
- 黑马程序员-IOS-OC基础-面向对象语法一
- 黑马程序员-----java入门一DAY10------类的设计分析 面向对象多态 构造代码块
- 黑马程序员_面向对象---封装
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- 黑马程序员-面向对象-异常处理机制