
面向对象
左绍骏
这个作者很懒,什么都没留下…
展开
-
继承中成员变量的关系
继承中成员变量的关系A:不同名的变量。(正常输出)B:同名的变量。(就近原则,子类有就不用父类的了。) 子父类出现同名的变量只是在讲课中举例子有,在开发中是不会出现这种情况的。 子类继承父类就是为了使用父类的成员,那么如果定义了同名的成员变量就没有意义了。class Demo04_Extends{ public static void main(String[] args)...原创 2018-05-23 23:01:12 · 1029 阅读 · 0 评论 -
多态中向上转型和向下转型
多态中向上转型和向下转型class Demo03_SuperMan { public static void main(String[] args) { Person p = new SuperMan(); //父类引用指向子类对象,超人提升为了人 //父类引用指向...原创 2018-07-04 23:50:39 · 314 阅读 · 0 评论 -
抽象类的成员特点
抽象类的成员特点A:抽象类的成员特点 a.成员变量:既可以是变量,也可以是常量。abstract是否可以修饰成员变量?不能修饰成员变量b.构造方法:有。 用于子类访问父类数据的初始化。c.成员方法:既可以是抽象的,也可以是非抽象的。B:案例演示 抽象类的成员特点C:抽象类的成员方法特性:a.抽象方法 强制要求子类做的事情。(子类必须对其重写)b.非抽象方法 子类继承的事情...原创 2018-07-19 00:23:19 · 3810 阅读 · 1 评论 -
多态的好处和弊端
多态的好处和弊端A:多态的好处 a:提高了代码的维护性(继承保证)b:提高了代码的扩展性(由多态保证)B:案例演示 多态的好处可以当作形式参数,可以接收任意子类对象C:多态的弊端不能使用子类的特有属性和行为。class Demo04_Animal { public static void main(String[] args) { //Cat c1...原创 2018-07-14 21:50:32 · 4213 阅读 · 0 评论 -
抽象类的概述及其特点
A:抽象类概述 抽象就是看不懂的B:抽象类的特点a:抽象类和抽象方法必须用abstract关键字修饰 abstract class 类名 {}public abstract void eat();b:抽象类不一定有抽象方法,有抽象方法的类一定是抽象类或者是接口c:抽象类不能实例化那么,抽象类如何实例化呢? 按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。...原创 2018-07-15 00:37:17 · 3335 阅读 · 0 评论 -
葵花宝典
葵花宝典class Demo03_葵花宝典{ public static void main(String[] args){ 岳不群 小岳子 = new 岳不群(); 小岳子.子宫(); }}//抽象方法存在于抽象类中或者接口中abstract class 葵花宝典{ public abstract void 子宫();}c...原创 2018-07-29 16:02:31 · 4189 阅读 · 0 评论 -
抽象类练习猫狗案例
抽象类练习猫狗案例当无法去描述一个方法的时候就讲它定义为抽象的。class Test01_Animal{ public static void main(String[] args){ Cat cat = new Cat("加菲", 3); System.out.println(cat.getName() + "..." + cat.getAge()...原创 2018-07-29 18:34:07 · 772 阅读 · 0 评论 -
抽象类老师练习案例
抽象类老师练习案例 class Test02_Teacher{ public static void main(String[] args){ BaseTeacher bt = new BaseTeacher("Leo", 18); bt.teach(); WorkTeacher wt = new WorkTeacher("Kin"...原创 2018-07-29 19:36:57 · 1046 阅读 · 0 评论 -
抽象类练习员工案例
抽象类练习员工案例class Test03_Employee { public static void main(String[] args) { Coder c = new Coder("德玛西亚","007",8000); c.work(); Manager m = new Manager("苍老师","9527",3000,200...原创 2018-07-29 22:18:11 · 949 阅读 · 0 评论 -
超人的故事
class Demo03_SuperMan{ public static void main(String[] args){ Person p = new SuperMan(); //父类引用指向子类对象,超人提升为了人 System.out.println(p.name); p.谈生意(); //成员方法:编译看左...原创 2018-07-01 23:39:46 · 385 阅读 · 0 评论 -
多态中的成员访问特点之静态成员方法
静态方法编译看左边(父类),运行看左边(父类)。(静态和类相关,算不上重写,所以,访问还是左边的)只有非静态的成员方法,编译看左边,运行看右边 class Demo02_Polymorphic { public static void main(String[] args) { /*Father f = new Son(); /...原创 2018-07-01 23:20:05 · 659 阅读 · 0 评论 -
final修饰变量的初始化时机
final修饰变量的初始化时机A:final修饰变量的初始化时机显示初始化 在对象构造完毕前即可class Demo03_Final { public static void main(String[] args) { Demo d = new Demo(); d.print(); }}//正确class Demo { ...原创 2018-06-10 22:17:21 · 2238 阅读 · 0 评论 -
this和super的区别和应用
this和super的区别和应用A:this和super都代表什么 this:代表当前对象的引用,谁来调用我,我就代表谁super:代表当前对象父类的引用B:this和super的使用区别a:调用成员变量 this.成员变量 调用本类的成员变量,也可以调用父类的成员变量super.成员变量 调用父类的成员变量b:调用构造方法 this(…) 调用本类的构造方法super(...原创 2018-05-24 00:19:26 · 211 阅读 · 0 评论 -
继承中构造方法的注意事项
继承中构造方法的注意事项A:案例演示 父类没有无参构造方法,子类怎么办?super解决this解决B:注意事项 super(…)或者this(….)必须出现在构造方法的第一条语句上代码1:class Demo06_Extends{ public static void main(String[] args){ Son s1 = new Son();...原创 2018-05-30 00:05:18 · 1299 阅读 · 0 评论 -
多态的概述及其代码体现
多态的概述及其代码体现A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提 a:要有继承关系。b:要有方法重写。c:要有父类引用指向子类对象。C:案例演示代码体现多态 class Demo01_Polymorphic{ public static void main(String[] args){ //猫是...原创 2018-06-12 23:27:21 · 871 阅读 · 0 评论 -
多态中的成员访问特点之成员变量
多态中的成员访问特点之成员变量class Demo2_Polymorphic{ public static void main(String[] args){ Father f = new Son(); System.out.println(f.num); Son s = new Son(); System.out.pri...原创 2018-06-24 23:20:19 · 457 阅读 · 0 评论 -
多态中的成员访问特点之成员方法
多态中的成员访问特点之成员方法class Demo2_Polymorphic{ public static void main(String[] args){ Father f = new Son(); f.print(); }}/*成员方法编译看左边(父类),运行看右边(子类)*/class Father{ int num...原创 2018-06-24 23:34:52 · 618 阅读 · 0 评论 -
猫狗案例分析,实例及测试
猫狗案例分析,实例及测试class Test05_Animal { public static void main(String[] args) { Cat c1 = new Cat("小蓝", 4); System.out.println(c1.getColor() + "..." + c1.getLeg()); c1.eat(); ...原创 2018-06-10 20:07:27 · 1110 阅读 · 0 评论 -
final关键字修饰类,方法以及变量的特点
final关键字修饰类,方法以及变量的特点A:final概述 final是最终的B:final修饰特点 修饰类,类不能被继承修饰变量,变量就变成了常量,只能被赋值一次 常量命名规范,如果是一个单词,所有字母大写,如果是多个单词,每个单词都大写,中间用下划线隔开final修饰变量叫做常量,一般会与public static共用修饰方法,方法不能被重写C:案例演示final修...原创 2018-06-10 20:31:29 · 4321 阅读 · 0 评论 -
final关键字修饰局部变量
final关键字修饰局部变量A:案例演示方法内部或者方法声明上都演示一下(了解)基本类型,是值不能被改变引用类型,是地址值不能被改变,对象中的属性可以改变class Demo02_Final { public static void main(String[] args) { final int num = 10; //num = 20;...原创 2018-06-10 21:56:43 · 7160 阅读 · 3 评论 -
抽象类中的面试题
抽象类中的面试题class Demo04_Abstract { public static void main(String[] args) { System.out.println("Hello World!"); }}/** A:面试题1 * 一个抽象类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义? * 可以 ...原创 2018-08-06 23:07:21 · 638 阅读 · 0 评论 -
接口的概述及其特点
接口的概述及其特点抽象类:抽象类中可以定义抽象方法,也可以定义非抽象方法。 接口:接口中必须全部定义抽象方法。A:接口概述 从狭义的角度讲就是指java中的interface从广义的角度讲对外提供规则的都是接口 B:接口特点 a:接口用关键字interface表示 interface 接口名 {}b:类实现接口用implements表示 class 类名 implemen...原创 2018-08-11 18:56:55 · 4649 阅读 · 0 评论 -
接口的成员特点
接口的成员特点成员变量:只能是常量并且是静态的并且是公共的 * 默认修饰符:public static final 三个关键字可以互相交换位置 * 建议:自己手动给出构造方法:接口没有构造方法成员方法:只能是抽象方法 * 默认修饰符:public abstract * 建议:自己手动给出class Demo02_...原创 2018-08-12 01:10:47 · 1189 阅读 · 0 评论 -
内部类概述及访问特点
内部类概述及访问特点A:内部类概述 * a:在类中定义类。B:内部类访问特点 a:内部类可以直接访问外部类的成员,包括私有。b:外部类要访问内部类的成员,必须创建对象。外部类名.内部类名 对象名 = 外部类对象.内部类对象;C:案例演示内部类极其访问特点class Demo01_InnerClass { public static void main(S...原创 2018-09-02 00:52:40 · 293 阅读 · 0 评论 -
成员内部类私有使用
成员内部类私有使用class Demo02_InnerClass{ public static void main(String[] args){ //Demo02_InnerClass.java:3: 错误: Outer.Inner可以在Outer中访问private //Outer.Inner oi = new Outer().new Inner()...原创 2018-09-02 01:10:52 · 210 阅读 · 0 评论 -
匿名内部类重写多个方法调用
匿名内部类重写多个方法调用案例一:class Demo05_NoNameInnerClass { public static void main(String[] args) { Outer o = new Outer(); o.method(); }}interface Inter { public void show1();...原创 2018-09-04 22:53:00 · 2326 阅读 · 4 评论 -
静态成员内部类
静态成员内部类class Demo03_StaticInnerClass { public static void main(String[] args){ //它是一个静态的内部类,就把它看做一个静态的成员就可以了 //比如说静态的方法,它是怎么调用呢?类名.调用。 //Outer.Inner oi = Outer.new Inner(...原创 2018-09-02 15:29:51 · 339 阅读 · 0 评论 -
成员内部类的面试题
成员内部类的面试题class Test01_InnerClass { public static void main(String[] args){ Outer.Inner oi = new Outer().new Inner(); oi.show(); }}//要求:使用已知的变量,在控制台输出30, 20, 10。//内部类之所以能获取...原创 2018-09-02 15:41:20 · 315 阅读 · 0 评论 -
局部内部类访问局部变量的问题
局部内部类访问局部变量的问题class Demo03_InnerClass{ public static void main(String[] args){ Outer o = new Outer(); o.method(); }}class Outer{ public void method(){ //错误:从内部...原创 2018-09-02 17:20:39 · 274 阅读 · 0 评论 -
匿名内部类的格式和理解
匿名内部类的格式和理解A:匿名内部类 就是内部类的简化写法。B:前提:存在一个类或者接口 这里的类可以是具体类也可以是抽象类。 匿名内部类,意思就是没有名字。没有名字就需要想办法表示它。 怎么表示它呢?就是要实现一个接口或者继承一个类。 必须要和外面的某个接口或者某个类产生关系,这才是匿名内部类。C:格式 new 类名或者接口名(){ 重写方法; ...原创 2018-09-02 18:54:47 · 6255 阅读 · 3 评论 -
匿名内部类在开发中的应用
1.有名字的类的书写案例class Test01_NoNameInnerClass{ public static void main(String[] args){ //如何调用PersonDemo中的method方法呢? PersonDemo pd = new PersonDemo(); pd.method(new Student())...原创 2018-09-09 22:44:56 · 606 阅读 · 0 评论 -
类及其组成所使用的常见修饰符
类及其组成所使用的常见修饰符A:修饰符:权限修饰符:private,默认的,protected,public状态修饰符:static,final抽象修饰符:abstractB:类:权限修饰符:默认修饰符,public状态修饰符:final抽象修饰符:abstract用的最多的就是:publicC:成员变量:权限修饰符:private,默认的,protected,pu...原创 2018-08-27 23:21:55 · 1068 阅读 · 0 评论 -
四种权限修饰符的测试
四种权限修饰符的测试A:案例演示 四种权限修饰符B:结论 本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类)private Y 默认 Y Yprotected Y Y Ypublic Y ...原创 2018-08-27 23:10:25 · 669 阅读 · 0 评论 -
import关键字的概述和使用
import关键字的概述和使用A:案例演示 为什么要有import 其实就是让有包的类对调用者可见,不用写全类名了 B:导包格式 import 全类名;注意:这种方式导入是到类的全类名。虽然可以最后写*,但是不建议。C:package,import,class有没有顺序关系 有顺序,package第一句,import在中间,class在后面。 其中import可以写很多句...原创 2018-08-26 22:10:41 · 1976 阅读 · 0 评论 -
类与类,类与接口,接口与接口的关系
类与类,类与接口,接口与接口的关系A:类与类,类与接口,接口与接口的关系a:类与类: 继承关系,只能单继承,可以多层继承。b:类与接口: 实现关系,可以单实现,也可以多实现。并且还可以在继承一个类的同时实现多个接口。c:接口与接口:继承关系,可以单继承,也可以多继承。class Demo03_Interface { public static void main...原创 2018-08-12 01:45:57 · 509 阅读 · 0 评论 -
抽象类和接口的区别
抽象类和接口的区别A:成员区别抽象类: 成员变量:可以是变量,也可以是常量构造方法:有(可子类进行初始化使用)成员方法:可以是抽象(子类必须对他进行重写),可以是非抽象(子类可以继承下来直接使用)。B:关系区别类与类:继承,单继承类与接口:实现,单实现,多实现接口与接口:继承,单继承,多继承C:设计理念区别抽象类 被继承体现的是:“is a”的关系。抽象类中定义的是...原创 2018-08-12 15:03:43 · 133 阅读 · 0 评论 -
猫狗案例加入跳高功能分析及代码实现
猫狗案例加入跳高功能分析及代码实现class Test01_Animal { public static void main(String[] args) { Cat c = new Cat("加菲",8); c.eat(); c.sleep(); JumpCat jc = new JumpCat("跳高猫",3); ...原创 2018-08-12 15:43:22 · 771 阅读 · 0 评论 -
某女星和某干部的例子
某女星和某干部的例子class Demo04_Interface{ public static void main(String[] args){ System.out.println("Hello World!"); }}/*某女星认干爹的例子亲爹是单继承,干爹是多实现*/interface 某干爹{ public abstract ...原创 2018-08-12 16:39:04 · 180 阅读 · 0 评论 -
package关键字的概述及作用
package关键字的概述及作用A:为什么要有包 将字节码(.class)进行分类存放 包其实就是文件夹B:包的概述举例: 学生:增加,删除,修改,查询 老师:增加,删除,修改,查询 …方案1:按照功能分 com.heima.add AddStudent AddTeacher com.heima.delete ...原创 2018-08-12 16:48:17 · 844 阅读 · 0 评论 -
包的定义及注意事项
包的定义及注意事项A:定义包的格式 package 包名;多级包用.分开即可B:定义包的注意事项A:package语句必须是程序的第一条可执行的代码B:package语句在一个java文件中只能有一个C:如果没有package,默认表示无包名package com.heima;class Demo01_Package { public static void ma...原创 2018-08-12 21:15:53 · 508 阅读 · 0 评论