学习Java编程两周,其中学习了面向对象,OOP思想。
学习面向对象,最重要的是OOP思想。它不像C语言是面向过程,程序员就像执行者一步一步的做。就像案例大象与冰箱。C语言的执行过程是:1、人打开冰箱。 2、人把大象放进冰箱。3、人把冰箱关上。而面向对象则像是管理员。看这个案例有几个对象:在这个案例中,有人、大象、冰箱三个对象。管理员只要知道这几个对象之间要做什么,而不用管它怎么做。
笔记:
1.sleep 休息几秒,再执行下一个语句。
2.生成0-n的整数
Random random = new Random;
int k = random.nextInt(n);
4.构造函数当类被实例化后立即调用的函数
继承----------------------------------------------
* 继承:其实就是2个类之间的关系,由子类去继承父类,然后可以使用父类的所有的属性以及行为.
* 继承的优点:
* 1、子类继承父类,可以使用父类的属性
* 2、子类继承父类,可以使用父类的函数
* 3、子类继承父类,但是如果子类有相同名字以及返回值和参数的函数,那就优先调用子类的,这叫做覆盖或者重写
* 4: 一旦父类有构造函数,那么会调用去调用父类的
* 5: 如果子类也有构造函数,会优先去调用父类的构造函数
*/
* super(); 主动去调用父类的构造函数
* 一旦子类继承父类在实例化后,默认加载super();也就是默认加载父类的构造函数
*/
* 继承注意事项:
* 1、继承:子类继承父类,使用父类属性和函数。
* 2、继承在java中,不能多继承,但不代表不能多重继承。
* 3、一旦发生多重继承,先使用父类的,如果父类没有,使用父类的父类的。
* 4、超类和基类一般表示就是最开始的类,祖宗。
*
* 关联(普通朋友)、聚合(好朋友)、组合(基本一起死)
*
* 关联:一般是指 A类 和 B类只是一种普通的关系约束,例如:行为之间相互使用,但是并不影响各自的情况
* 聚合:一般是指 A类和B类,是一种整体与个体的关系,如:汽车和轮子的关系,但是少了轮子,它还叫汽车。
* 组合:一般是指 A类和B类,有一种与生俱来的关系,也就是刚开始2个对象就已经存在,一旦一个发生意外,那么另一个也即将销毁。
* final: 也是一种修饰符。可以作用于:函数、变量、类.
* final作用于类的时候,一般表示该类没有子类的情况下使用。
* 一旦作用于类,就不能就被继承。如:final class Person(){}
*
* final作用于函数的时候.那么这个函数就不能被子类重写。
* 如: final void run(){}
*
* final作用于变量的时候,一般说明这个变量只能赋值一次,一旦赋值就不能再改了。
* 如: final int a = 10; //在java中,一般这种表现形式为常量。
* final 的命名方式有所讲究:一般为 final int A = 10; final float P_I = 10f;
抽象-----------------------------------
* 抽象(abstract):修饰符的一种
* 抽象也可以修饰类,方法
*
** 1、抽象类里可有抽象方法。
** 2、一旦定义了抽象方法,那么其子类必然需要实现父类的抽象方法。
**3、抽象类中的所有的抽象方法,在子类中都必须实现
** 4、抽象方法一定被定义,那么肯定这个类也是抽象类。 抽象类里可以没有抽象方法但是抽象方法必须在抽象类里。
**5、抽象方法本身不负责具体实现,由其子类负责具体实现。
** 6、抽象类本身不能被实例化。
** 7、abstract不能与final在一起,因为final是没有子类的,而abstract往往作用于父类,所以不能一起修饰
** 8、abstract不能与static与private在一起。
**9、抽象一般用于申明一些固定的方法,具体实现需要到子类
接口------------------------------------
*
* 接口:接口就是一组规范
* 接口:就是一旦遵守这组规范,你就必须要实现这些行为。
* 接口:一般与implements搭配使用,一个是接口,一个是实现。
* 接口:用的是interface关键字。
* interface 接口名{
* 属性 / 行为
* }
* 在interface内部每个属性都默认添加:
* public static final int PI = 1
* 如果没有,那是系统默认添加
* 在interface内部每个函数都会加public
* public void run()
*
* 因此,在接口中,所有的属性与函数都需要加public
* 因为,这些接口里的行为都需要实现。
*
* 在某种层次理解,接口就是加强版抽象。因为:
* 1、抽象类里不需要一定要有抽象函数。因此继承抽象,不需要一定实现非抽象方法。
* 2、但是接口一旦实现,那接口内部所有的函数,都需要都实现。
* 3、因此就相当于在抽象类内部,所有的属性都是final属性,所有函数都是抽象函数。
* 抽象与接口的区别:
* 1、抽象作用于类,一般都会有子类。
* 2、接口一般作用于函数。
* 3、抽象类只能单继承。接口也多实现,也能多继承(不推荐)。
* 4、抽象可以有方法体,但是接口没有。
* 5、实现接口必须要加入修饰符 public
*
* 为什么要有接口?
* 1、接口就是规范,定义实现这个事物标准
* 2、如果多个类去实现同一个接口里的方法(而不去写接口的话),
* 是不知道这些行为属于同一类型的。
* 3、统一标准的目的就是为了让所有事物知道这个是“做什么”
但是具体不用知道“怎么做”
*
多态------------------------------------------------------
多态的前提:
*1、肯定会有继承。
*2、肯定会有重写
*3、肯定是父类去表示子类
多态的好处:
1、多种多态表示一个对象
2、当使用父类的形态表示子类的行为的时候,是可以减少代码冗余的。
3、多态有很好的可扩展性
* 多态的特性(非静态函数):
* 1、编译的时候一般是找到左边的引用类型方法
2、运行的时候一版是找到右边的对象类型方法
Father son1 = new Son();
son1(因为Father所以在编译时检测Father类是否有sleep函数).sleep()(如果有这个函数,那么在运行右边的也就是Son子类的对象函数);
多态的特性(静态函数):
1、优先处理本类的静态函数
* instanceof 是判断当前引用类型是什么类型
* 如:father instanceof Son
* 注意:在判断条件中,if条件不能写父类判断。
* 转型一般发生在继承的基础上:
1、必须有子类和父类
2、转型说到底还是子类的形态的转变。
*
* 注意:
* 1、转型发生时,如果这个对象是父类,
* 那么转型不可发生
*/
*
* 多态就是父类的引用指向子类。
* 其实真实的内存地址是子类
*
* 子类不能去表示一个父类
分享到:
相关推荐
专业的Java笔记可能会涉及这些内容,帮助学习者掌握Java的最新发展。 遗憾的是,由于【部分内容】部分不包含实际的笔记内容,无法进一步提供具体的编程示例和深入的解释。如果要学习Java,最好的方式是从学习Java的...
java笔记java笔记java笔记java笔记java笔记java笔记java笔记
【宋红康java笔记】是一份综合性的Java学习资料,由知名编程教育者宋红康编撰。这份压缩包文件包含了大量的Java编程知识点,旨在帮助初学者和有经验的开发者深入理解和掌握Java语言的核心概念与高级特性。以下是根据...
这份"非常好的java笔记"无疑是初学者踏入这个领域的宝贵资源。笔记由培训班的专业老师编写,内容详细且全面,旨在帮助初学者系统地学习和理解Java的基础知识。 首先,Java基础部分会涵盖变量、数据类型、运算符、...
《狂神说Java笔记资料》是一份全面涵盖Java开发基础知识的文档集,旨在帮助学习者系统地掌握Java编程。这份笔记包含多个章节,每个章节都深入讲解了一个特定的主题,覆盖了从初学者到进阶开发者必备的知识点。 1. *...
马士兵JAVA笔记(全) 本资源是马士兵的JAVA笔记,涵盖了JAVA语言的基础知识,包括标识符、常量、变量、数据类型、运算符、控制流语句等。 标识符是JAVA中的一种符号,用于命名变量、方法、类等。标识符由字母、...
【标题】"韩顺平java笔记完整版.zip(无笔记,只是代码)"指的是一个包含韩顺平老师Java教学视频中所有代码的压缩文件。这个压缩包不包含笔记,而是专注于提供实际的编程示例,使得学习者可以直接查看和学习Java编程...
这份"18天Java笔记"提供了一个快速学习Java的核心内容精华,适合初学者和有一定经验的开发者进行回顾和巩固。txt版的格式使得笔记易于阅读和在不同设备上分享。 Java的基础知识包括语法、数据类型、控制流、类与...
【标题】:“韩顺平java笔记完整版”是著名IT教育家韩顺平关于Java编程的全面学习资料,涵盖了从基础到高级的Java知识体系。 【描述】:这份笔记是韩顺平老师教学经验的结晶,旨在帮助学习者系统地理解和掌握Java...
"java笔记全套下载" 提供的可能是一系列详细的学习资料,涵盖了从基础到高级的Java知识体系,帮助学习者系统地掌握这门语言。 Java的基础知识包括: 1. **Java语法**:了解变量、数据类型、运算符、流程控制(如if-...
全套java笔记整理,侧边栏目录结构方便查看,纯手工整理。达内笔记整理。 已整理成带侧边栏目录的网页结构,方便复习大纲和跳转查看。大部分都带有笔记代码。 (默认设置为深珊瑚蓝色调,不喜欢可以把配置文件里的...
【Java笔记桌面程序】 在IT领域,开发个人定制的桌面应用程序是解决特定需求的有效方法。本项目名为"Java笔记桌面程序",它是由一个热衷于编程的开发者为解决其所在公司无法使用网络笔记客户端的问题而自创的。这个...
2020-4-6 java笔记 ---内部类 2020-4-6 java笔记 ---异常 2020-4-6 java笔记 --多线程 2020-4-8 java笔记 String类 2020-4-9 java 比较器 2020-4-10 java笔记 枚举类 2020-4-10 java 注解(Annotation) 2020-4-11 ...
韩顺平java笔记整理,整理了韩顺平java上课的视频的代码笔记,以及归纳总结
### Java基础知识概述 #### 1. 前言 Java是一种广泛使用的面向对象的编程语言,因其跨平台性、安全性和强大的功能而受到欢迎。Java的设计理念是“一次编写,到处运行”,这意味着编写的Java程序可以在任何安装了...
达内是一家知名的教育机构,其整理的Java笔记通常会覆盖从基础到进阶的各种主题,以系统化的方式帮助学员掌握这门广泛使用的编程语言。 首先,Java的基础知识是必不可少的,这些笔记可能包括变量、数据类型、运算符...
标题中的“全套java笔记数据库部分”表明这是一份关于Java编程语言中数据库操作的全面学习资料,涵盖了从基础到进阶的各种主题。描述提到“最新的全套javaEE开发笔记”,暗示了这些笔记可能针对的是Java企业版(Java...
- 文件I/O操作:使用`java.io`包,如`FileWriter`和`BufferedReader`,将笔记内容写入和读取文件。可能需要JSON或XML序列化技术来保存额外的元数据,如撤销历史。 - 文件对话框:`JFileChooser`类提供了一种让用户...