黑马程序员-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/

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 怀孕了嘴巴好苦怎么办 嘴巴没味道想吐怎么办 手机流量不够用怎么办移动 sd卡图片不显示怎么办 苹果忘了id账号怎么办 苹果id号忘记了怎么办 7icloud存储满了怎么办 苹果6icloud满了怎么办 电脑内存槽坏了怎么办 苹果7照片删不了怎么办 屋里太冷怎么办小妙招 天气太热,没空调怎么办 8岁儿童发烧39度怎么办 4岁儿童发烧39度怎么办 6岁儿童发烧39度怎么办 手机被晒得很烫怎么办 子宫肌瘤引起的贫血怎么办 月子没做好腰疼怎么办 狗狗屁股流血水怎么办 狗狗屁股在流血怎么办 劳累引起的腰疼怎么办 心口发闷堵的慌怎么办 刨腹产后肚子大怎么办 c盘空间不够用怎么办 敷面膜玩手机了怎么办 领导想辞退我该怎么办 领导要辞退我要怎么办 想辞职老板不批怎么办 辞职后工资不给怎么办 闻组词表示听见怎么办 染完头发后悔了怎么办 跟不好的人相处怎么办 销售时遇到客诉怎么办? 面对挑衅你的人怎么办 我的性格很拘谨怎么办 奶胀且有硬块怎么办 家里的鸡生病了怎么办 睡觉压的心脏疼怎么办 草图大师7很卡怎么办 空调不除霜怎么办格力 鸡蛋叫魂立住了怎么办