Java学习笔记1-面向对象特性

面向对象编程(OOP):让编程更有层次感,增加了公用模块的复用性,让程序员精力更加的集中到具体业务实现和技术突破上去。同时也让程序员在实现时提前考虑框架性,比如类的设计,可以对形象思维有了更高的要求。

面向程序设计方法的 5 大基本特征:

1.所有东西都是对象;

2.程序是一大堆对象的组合,通过消息传递,各对象知道自己该做什么;

3.每个对象都有自己的存储空间,可容纳其他对象;

4.每个对象都有一种类型;

5.同一类所有对象都可以接收相同的消息。

作用域 当前类 同一Package 子孙类 其他package
public
protected ×
friendly × ×
private × × ×

类(Class):一些公用的通用属性都可以放到类里面来进行实现,避免多个地方重复实现,每个类相当于一个类型,比如图形可以是一个所有形状的公用类。

接口(Interface):通过类的接口来具体操作/调用类的具体实现/动作,比如图形类可以有创建、删除的公用接口和实现。

继承(extrends):

子类拥有父类非 private 的属性,方法;

子类可以拥有自己的属性和方法,即子类可以对父类进行扩展;

子类可以用自己的方式实现父类的方法;

Java 的类继承是单继承,但是接口可以使用关键字 implements 实现多重继承;

子类会默认调用父类的无参数构造器,但是如果没有默认(无参数)的父类构造器,子类必须要显示的指定父类的构造器(有参数),而且必须是在子类构造器中做的第一件事;

继承提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系),慎用继承。

继承后类型支持向上转型,比如B继承A,那么B的实例也属于A类型。

动态绑定/多态:当继承和向上转型同时存在时,函数实现会遵循多态原则进行实际的调用,调用顺序为:this.show(O)、super.show(O)、this.show((super)O)、super.show((super)O)。

最终类:使用关键字 final 定义,表示该类不可被继承,final 类里面的方法和变量都默认是 final 属性。

抽象类:使用关键字 abstract 定义,抽象类只能被继承后使用,不能被直接实例化。

接口:使用关键字 interface 定义,接口不能被实例化,接口没有构造方法,接口中的方法默认都是隐性抽象方法,接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

Java 集合类:Set、List、Map、Queue。

单根结构:Java 中所有类最终都是从 "Object" 基础类继承而来。

下溯造型:相当于强制类型转换,使用前一定要确认安全性。

泛型:只使用一个大写字母来定义,并且放到<>中,泛型主要是定义时不指定明确的类型,而是在实例化时再指定,加强了代码复用性。

垃圾收集器:Java 支持内存的自动分配和回收机制,功能对性能会有一定影响。

异常处理:Try、catch 和 finally 机制。

多线程:Java 支持多线程处理,并且可以在多处理器时自行分配处理,对于共享资源的使用时,需要使用资源锁或者 synchronized 关键字。

时间: 2024-11-05 01:08:13

Java学习笔记1-面向对象特性的相关文章

Java学习笔记&lt;3&gt;面向对象相关

面向对象的基本思想 从现实世界客观存在的事务出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式,如抽象.分类 继承.聚合.多态等. 类和对象的关系 对象中存储了类规定的数据类型,并且对象可以调用类的方法. java面向对象 <1>对象是java程序的核心,一切皆对象. <2>对象可以看成静态属性(成员变量)和动态属性(方法)的封装体. <3>类是创新同一类型对象的模版,定义了该类型对象应具有的成员变量及方法. 类的定义 成员变量可以用java语言的任何一种

java学习笔记之面向对象static,final关键字

java学习笔记之面向对象static,final关键字 一.static关键字 1.概述: static静态的,被static修饰的成员属于类,不属于单个对象,被所有对象所共享,存在静态区中,静态的成员优先于对象加载到内存中. 2.statc修饰成员的使用方式:(被static修饰的成员变量有默认值) /* 1.可以通过对象直接使用,不推荐使用 2.通过类名调用静态成员 类名.静态成员变量 类名.静态成员方法 */ 3.static的特点 /* 1.在同一个类中,静态成员只能访问静态成员,非静

【原】Java学习笔记019 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 仔细想一想,Animal应该是一个抽象的概念,相对于Animal来说,狗才是具体的概念 6 // Animal的行为也应该算是一个抽象的行为 7 8 // Java中对于这些抽象的概念或是抽象的行为,提供了一个关键字 abstract 来进行修饰 9 10 // 关键字 abstract用在类上,

【JAVA学习笔记】面向对象

编程语言的发展 面向过程的设计思想 面向对象的设计思想 对象和类的概念 类之间的关系 对象和引用 Java类的定义 构造函数 对象的创建和使用 this关键字 static关键字 package和import语句 访问控制 类的继承 方法的重写 final关键字 object类 对象转型 多态 抽象类 接口 编程语言的发展 机器语言 汇编语言 高级语言–面向过程的语言 面向对象的语言 面向过程的思想和面向对象的设计思想 面向对象思维: 合适的方法出现在合适类中 在问题域中,不再考虑一步一步的过程

java学习笔记之面向对象多态

面向对象三大特性之多态 一.多态的概念 多态是继封装,继承之后,面向对象的三大特性. 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的张三同学既是学生也是人,即出现两种形态. java作为面向对象的语言,同样可以描述一个事物的多种形态,java中多态的代码体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值,又可以给这个子类(实现类对象)的父类(接口) 变量赋值. 父类的引用变量指向子类对象.多态的前提需要有继承关系或者是实现关系,否则没法完成多态.在使用

疯狂java学习笔记之面向对象-定义类、方法、构造器

Java面向对象 1.定义类 2.创建对象.调用方法 类和对象: 某一类对象的概念定义. 比如:人类 - 抽象出来的概念(不特指某个人) 对象 - 在类的概念下产生的一个实例,它就是一个对象了. java程序中,类是最小的程序单位 - 所有的java程序都必须从定义类开始 定义类的语法格式: [修饰符]  class  类名{ //0 ~ N 个 Field 定义 //0 ~ N 个 方法定义 //0 ~ N个 构造器定义 } 一个类中最多只能出现五种成分:Field.方法.构造器 一个类最常见

【原】Java学习笔记014 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 面向对象思想 6 7 // 回顾编程语言思想进化之路:从面向过程到面向对象 8 9 // 面向过程 10 // 举例: 11 // 1.冰箱门打开 12 // 2.大象放进去 13 // 3.冰箱门关上 14 // [面向过程的思路的着眼点在于动作的功能,思考打开.放入.关闭均为动作] 15 16

java 学习笔记2 面向对象(上)

类和对象 类是某一批对象的抽象,可以把类理解成某种概念.对象是一个具体存在的实体.类和对象是面向对象的核心. 类定义的是多个实例的特征,类不是具体存在,实例才是具体存在. 定义类(class)的语法: [修饰符] class 类名 { 零个到多个构造器定义.... 零个到多个成员变量.... 零个到多个方法....} 要点:1.三种常见的成员:构造器(new关键字调用) 成员变量 方法 2.类名由一个或多个有意义的词连接而成,每个单词首字母大写,其余小写. 3.修饰符可以是public fina

java学习笔记之面向对象接口

面向对象接口总结 接口理解: 接口是功能的集合,接口的定义也使用.java文件,编译之后也产生.class文件.类的定义使用class  ,而接口的定义使用interface: 定义格式: 1 public interface 接口名{ 2 //常量定义格式:public static final 常量名(一般是大写) 3 成员变量->常量 4 //抽象方法定义:public abstract 返回值类型 方法名(参数列表) 接口中的方法全部是抽象方法 5 成员方法->抽象方法 6 } 7 /

【原】Java学习笔记015 - 面向对象

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 传递 值类型参数 和 传递 引用类型参数 6 int i = 2; 7 int j = 3; 8 System.out.println("方法调用前:i = " + i + ",j = " + j); 9 10 Calc calc = new Calc(); 11 i