学习Mars 老师 java4android 收获!
2011-10-09 20:17
288 查看
面向对象
生成对象的方法
格式:类名 对象名 = new 类名();
例如 Dog dog = new Dog();右边部分Dog()又称为构造函数
1.Dog d = new Dog();
创建一个Dog的引用
2.Dog d = new Dog();
创建一个Dog的对象
3.Dog d = new Dog();
将创建的Dog对象赋给这个引用
this 使用方法
this 可以担当当前的引用
this 可以起到区分成员变量与参数,此时的this 不能省略。
Static 关键字的作用
静态成员变量是类层次的变量,既可通过类名调用,又可以通过对象名调用。
Java 当中只支持单继承
子类不能继承父类的构造函数,只能继承成员变量和成员函数;
在子类的构造当中,必须调用父类的构造函数
不写:编译器默认 会在子类中添加 super();
如果需要调用父类的构造函数 super(参数列表);
super 必须是第一条,否则会出错。
复写 Override -------------------------- | 区别于重载
1.在具有父子关系的两个类中; | 同一个类函数中
2.父类和子类各有一个函数,其定义完全相同; | 参数列表不同
(返回值、函数名和参数列表)都相同 |
注意:如果有重复 可以通过调用 super.XXX(); |
调用父类的函数。 |
向上转型
其调用的方法,取决于这个引用所指向的对象
Student s = new Student();
Person p = s;
向下转型
前提:先将一个对象向上转型,在将对象向上转回来。不能直接向上转!!
Person p = new Student();
Student s = (Student)p;
错误的向下转型
Person p = new Person();
Student s = (Student)p;
抽象类(基类)
使用abstract定义的类被称之为抽象类;
1.抽象类不能够生成对象<=>不能实例化;
2.如果一个类当中包含有抽象函数。那个这个类必须被声明为抽象类;
3.如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类。
1.抽象类不能生成对象
2.构造函数用于生成类的对象
注意:抽象类可以有构造函数
抽象函数是没有函数体的,abstract void eat();
抽象函数是可以被继承的,但是如果不想将子类变为抽象类,则需要将抽象类的抽象方法复写
生成对象的方法
格式:类名 对象名 = new 类名();
例如 Dog dog = new Dog();右边部分Dog()又称为构造函数
1.Dog d = new Dog();
创建一个Dog的引用
2.Dog d = new Dog();
创建一个Dog的对象
3.Dog d = new Dog();
将创建的Dog对象赋给这个引用
this 使用方法
this 可以担当当前的引用
class Person{ String name; int age; String address; Person(){ } Person(String name, int age){ this.name = name; this.age = age; } Person(String name, int age, String address){ /* *this.name = name; *this.age = age; *this.address = address; */ //this();//无参数调用 Persom() this(name, age);//调用的 Person(String name, int age) this.address= address;//减少了代码的重复 } void talk(String name){ System.out.println("my name is " + name); } }this 可以调用成员变量和成员函数、也可以调用构造函数;
this 可以起到区分成员变量与参数,此时的this 不能省略。
Static 关键字的作用
静态成员变量是类层次的变量,既可通过类名调用,又可以通过对象名调用。
Java 当中只支持单继承
子类不能继承父类的构造函数,只能继承成员变量和成员函数;
在子类的构造当中,必须调用父类的构造函数
不写:编译器默认 会在子类中添加 super();
如果需要调用父类的构造函数 super(参数列表);
super 必须是第一条,否则会出错。
复写 Override -------------------------- | 区别于重载
1.在具有父子关系的两个类中; | 同一个类函数中
2.父类和子类各有一个函数,其定义完全相同; | 参数列表不同
(返回值、函数名和参数列表)都相同 |
注意:如果有重复 可以通过调用 super.XXX(); |
调用父类的函数。 |
向上转型
class Person{ String name; int age; void eat(){ System.out.println("吃饭!!"); } void talk(){ System.out.println("My name is " + name + "My age is " + age); } }
class Student extends Person{ String address; void study(){ System.out.println("I am Studing!"); } void talk(){ super.talk(); System.out.println("My home is " + address); } }
class Test{ public static void main(String args[]){ Student s = new Student(); Person p = s; p.name = "zhangsan"; p.age = 20; //p.address = "Beijing"; 此处会报错 p.talk(); //p.study(); 此处会报错 } }一个引用能够调用哪些成员(变量和函数),取决于这个引用的类型;
其调用的方法,取决于这个引用所指向的对象
Student s = new Student();
Person p = s;
向下转型
前提:先将一个对象向上转型,在将对象向上转回来。不能直接向上转!!
Person p = new Student();
Student s = (Student)p;
错误的向下转型
Person p = new Person();
Student s = (Student)p;
抽象类(基类)
使用abstract定义的类被称之为抽象类;
1.抽象类不能够生成对象<=>不能实例化;
2.如果一个类当中包含有抽象函数。那个这个类必须被声明为抽象类;
3.如果一个类当中没有抽象函数,那么这个类也可以被声明为抽象类。
1.抽象类不能生成对象
2.构造函数用于生成类的对象
注意:抽象类可以有构造函数
抽象函数是没有函数体的,abstract void eat();
抽象函数是可以被继承的,但是如果不想将子类变为抽象类,则需要将抽象类的抽象方法复写
相关文章推荐
- Mars老师的Android学习基本路线_Java
- Mars老师的Android学习基本路线_Java
- Java中的IO-Mars老师学习视频笔记
- mars老师推荐的学习android路线
- Java4Android by mars (28-34)学习笔记
- Mars老师的Android学习基本路线
- mars老师android开发视频教程5季+java4android视频教程
- 转:Mars老师的Android学习基本路线
- mars老师推荐的学习android路线
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线指导
- Mars老师的Android学习基本路线Linux、数据库、网络协议、服务器端开发知识基础知识
- android mars老师学习笔记 知识点--目录!
- Mars老师的Android学习基本路线Linux、数据库、网络协议、服务器端开发知识基础知识
- Mars老师的Android学习基本路线指…
- Mars 老师 Android 教程之 Activity 生命周期学习笔记
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线
- 学习Mars老师Android Activity视频整理(1)