面向对象的基础
2017-02-10 本文已影响4人
往事一块六毛八
什么是面向对象?
- 面向对象是一种编程方法;
- 面向对象是一种思维方式
- 面向对象不是一种编程语言
什么是面向对象的思维方式
- 首先确定谁来做,其次确定怎么做
- 首先考虑整体,其次考虑局部
- 首先考虑抽象,其次考虑具体
面向对象的学习概括
- 创建类的方法
- 创建对象的方法
- 对象和对象的引用
定义类的方法
class 类名
{
属性;
方法;
//属性也叫成员变量,主要用于描述类的状态
//方法也叫成员方法,主要用于描述类的行为
}
函数的重载
1:定义:在同一个类中;方法名相同;参数类表不同(个数不同,类型不同);不考虑返回值类型;的多个相同名字的函数
class A{
void fun(){ system.out.printIn("没有参数");}
void fun(int a){ system.out.printIn("有一个参数");}
}
构造函数的作用
- 创建对象
- 为创建的对象的成员变量赋值
- 构造函数的重载
- 在子类的构造函数当中,必须调用父类的构造函数
1:定义:
A a=new A() //构造函数
calss A(){
A(){
}
}
注意:
* 没有返回值类型,方法名必须跟类名相同;
* 原来我们写类的时候并没有些构造函数,编译器会检测类有没有构造函数,没有会加一个没有参数且方法体为空的构造函数。
* 当类中有构造函数时,系统就不会给类自动加上没有参数的构造函数
面向对象特性
继承性
一:定义
【1】在现实世界中就是子承父业
【2】在面向对象的世界当自己当中,继承就是一个雷得到了另一个类当中的成员变量和成员方法
注:
- 在Java当中只支持单继承,不允许多继承,
- 子类不能继承父类中访问权限为private的成员变量和方法,
- 子类可以重写父类的方法,以及命名与父类同名的成员变量
- 当继承父类中的时候,如果父类中有抽象方法,就会重写父类中的抽象方法
- 不会继承父类的构造函数,在子类的构造函数当中,必须调用父类的构造函数
- 在子类的构造函数当中,必须调用父类的构造函数
二:使用super调用父类的构造函数的方法
使用super调用父类的构造函数的方法
在子类的构造函数当中,必须调用父类的构造函数
class Person {
String name ;
int age;
Person(){
System.out.printIn("无参数的构造函数");
}
Person(String name,int age){
this.name=name;
this.age=age;
}
}
class Student extends Person{
String grade;
Sudent (){
super();
System.out.printIn("无参数的构造函数"); //super调用父类中的构造函数,具体调用哪一个看夸括号里的参数
}
Student(String name,int age,int grade){
super(name,age);//必须是构造函数内容的第一句
this.grade=grade;
}
}
使用super调用父类的成员函数
class Person{
String name;
int age;
void introduce(){
System.out.pringIn("我的姓名是"+name+“我的年龄是”+age);
}
}
calss Student extends Person{
void introduce(){
super.introduce();
Systenm.out.printIn("我的家在"+address);
}
}
class Text {
public static void main(String args[]){
Student s=new Student();
s.name="张三";
s.age=20;
s.address="北京";
s.introduce();
}
}
三:函数的复写(override)
1:定义:
【1】:在具有父子关系的两个类当中;
【2】:父类和子类各有一个函数,这两个函数的定义(返回值类型,函数名和参数列表)完全相同
子类继承父类的函数,有的需要更改的过程
【3】如果子类复写了父类的方法,则运行是系统调用子类的方法,如果子类继承了父类的方法(为重写),则运行是调用父类的方法