黑马程序员-Java面向对象2
来源:互联网 发布:php和c语言哪个难 编辑:程序博客网 时间:2024/06/05 10:44
-----------android培训、java培训、java学习型技术博客、期待与您交流! ------------
1. 如何使用API(掌握)
A:找到文档,打开文档。
B:点击左上角的显示变成隐藏,然后点击索引
C:你应该知道你要找谁?比如要找Math类.所以,你就在那个输入框里面输入Math,然后回车,再回车。
D:看这个类的结构
java.lang 类 Math
java.util 类 Scanner
如果是java.lang包下的类,是可以直接使用的。(Math)
否则,就需要导包才能使用。(Scanner)
E:看看对这个类的说明。
F:看构造方法
名称:字段 --成员变量 -- 属性。
a:有构造方法,那么,就通过构造方法创建对象使用。
b:没有构造方法,那么,这个类的成员一般都是静态。通过类名调用。
G:按照正常的操作使用方法。
左边:(返回值,及返回值类型,是否静态)
是否静态:如果静态修饰,那么可以通过类名调用。否则,就必须创建对象调用。
是否有明确返回值:如果是void类型,就直接调用即可。否则,就可以输出或者赋值。
右边:(方法名,参数类表)
看方法名:不要写错了。
看参数:看参数类型及个数。
2. 继承(掌握)
2.1何为继承
把多个类中的相同属性和行为进行抽取,封装到一个类中.然后再建立新的类时,不需要重头开始起定义,继承刚才定义的那个类即可.
2.2继承的优点
提高了代码的复用性.同时,使得类与共性属性行为的偶联性降低了.
让类与类之间产生一个关系,是多态的前提.
2.3使用继承的时间
A:当两个类之间存在了is a 的关系,就可以考虑使用继承.就是a类是b类的一种.
B.不要为了获取一个功能而去使用继承,要根据程序的自然属性等判断.
2.4继承的特点
Java只支持但继承,不支持多继承.否则,当多个父类中定义了同名方法,子类调用时出现调用不明确问题.
Java支持多重(多层)继承.
2.5关键字super和this
super是一个关键字,用来代表父亲的存储空间标识.(可以暂时理解为父类的引用.)
super的使用方法和this基本一致.
成员变量:this.变量-本类;super.变量-父类;
构造方法:this(…)本类;super(…)父类
成员方法:this.方法名()本类;super(…)父类
2.6子父类中的成员变量的用法
名称不同,直接找对的调用.
名称相同,子类对象在使用时:
先找子类局部范围,再找子类成员范围,最后找父类成员范围.
2.7子父类中的成员方法使用
名称不同,直接调用名称正确的.
名称相同,子类对象在使用时,先找子类的方法,再找父类的方法.
方法重写:在子类中,如果存在和父类方法声明完全相同的方法,则是子类对父类该方法的重写.(方法声明包括:修饰符,返回值,函数名,参数列表)
注意事项: 父类中的私有方法,final方法不能被重写.
子类方法的访问权限必须大于父类该方法的反问权限.
静态方法只能重写静态方法(基本不出现,静态在详解)
2.8子父类中构造方法的使用
子类的初始化过程,首先会去执行父类的初始化动作.
因为,默认给子类构造方法中加入了一条super().因为,子类继承父类,子类在初始化时,相当有可能会使用到父类的成员变量,这个时候就必须先将父类进行初始化.
如果父类没有无参构造方法(解决方法)
手动使用super调用父类存在的带参构造,来实现初始化.(推荐)
使用this调用本身的其他构造函数.
案例代码:
/* 分析如下需求,写出你分析的类有哪些,以及功能。 最后写一个测试类,针对每个类的功能进行测试。 动物园里有很多种动物: 比如说,狗,猫等。 狗有姓名和年龄,猫也有姓名和年龄。 狗有跑步的方法,猫也有跑步的方法。而且都仅仅是跑步。 狗有吃饭的方法,猫也有吃饭的方法。只不过,狗吃骨头,猫吃鱼。 请用所学知识,对这个问题进行解决。 */class Animal {private String name;private int age;Animal() {}Animal(String name, int age) {this.name = name;this.age = age;}void run() {System.out.println(name+"^^^^^^^^^^^^^^^^"+age+"岁了");System.out.println("看他跑起来了~!");}}class Cat extends Animal {Cat() {}Cat(String name, int age) {super(name, age);}void eat() {System.out.println("他是猫,他在吃鱼。");}}class Dog extends Animal{Dog(){}Dog(String name,int age){super(name,age);}void eat(){System.out.println("他是狗,他在吃骨头。");}}public class Day08_HomeWork {public static void main(String[] args){Cat c=new Cat("小花",3);c.run();c.eat();Dog d=new Dog("小明",4);d.run();d.eat();}}
3. 代码块
执行顺序:
静态代码块à构造代码块à构造方法
(静态代码块只执行一次)
4. final关键字
是一个关键字,可以用于修饰类,成员变量,成员方法.
特点:
它修饰的类不能被继承.
它修饰的成员变量就是一个常量.
它修饰的成员方法不能被其子类重写(覆盖).
-----------------------android培训、java培训、java学习型技术博客、期待与您交流!----------------------
详情请查看:http://edu.csdn.net/
- 黑马程序员----JAVA----面向对象小结(2)----
- 黑马程序员-java面向对象2
- 黑马程序员-java面向对象2
- 黑马程序员-Java面向对象2
- 黑马程序员---java基础---2面向对象
- 黑马程序员---java基础---面向对象2
- 黑马程序员--面向对象2(Java)
- 黑马程序员----java----面向对象2
- "黑马程序员"Java面向对象(2)
- 黑马程序员-Java基础:面向对象-2
- 黑马程序员 Java基础 面向对象2
- 黑马程序员 java面向对象
- “黑马程序员”-Java面向对象
- 黑马程序员--java面向对象
- 黑马程序员---面向对象【java】
- 黑马程序员-------Java面向对象
- 黑马程序员--java面向对象
- 黑马程序员-java面向对象
- C#.NET编码规范整理
- 提搞网站访问速度可做哪些优化
- php面试题
- JS倒计时
- linux网络基础
- 黑马程序员-Java面向对象2
- Spring实现数据库读写分离
- 白文召的专栏LNMP
- 基于visual Studio2013解决面试题之0208二叉搜索树后序遍历序列
- Client-server QT Tool for Managing PPC (PowerPC)
- 子网掩码小结
- spring中AOP动态代理基本原理
- ACE事件处理器
- linux下卸载mysql