类对象

Java面向对象 学习笔记【实验楼】

匆匆过客 提交于 2020-01-01 00:57:07
类 对于一个具体的对象而言,比如一部 iphone 6,世上还有许多跟这部手机有着同样属性或行为的对象,我们为了方便将它们归类起来,提取出他们相同的属性和行为,而我们把归类起来的这个抽象的概念,称之为类。 比如每个人就是一个对象,小张是一个对象,小明是一个对象。而每个人虽然不同,但却有许多相同的属性和行为,于是我们可以把他们抽象出来,变成一个类,比如人类。 类是封装对象的属性和行为的载体 ,反过来说具有相同属性和行为的一类实体被称为类。 由此可以总结出类的定义: 类是相同或相似对象的一种抽象,是对象的一个模板,它描述一类对象的行为和状态。 类是具有相同属性和方法(行为)的对象的集合 我们在上面反复强调对象的属性和行为,什么是对象的属性呢?什么又是对象的行为呢? 属性是对象具有的特征 。每个对象的每个属性都拥有特定值。我们上面讲过对象是一个具体并且确定的事物,正是对象属性的值来区分不同的对象,比如我们可以通过一个人的外貌特征区分他。 那什么是对象的行为呢?在计算机中我们通过方法去实现对象的行为,而 对象的方法便是对象所具有的操作 ,比如人会走路、会哭泣、会学习等等都是人的行为,也就是人的方法。 类和对象之间有什么关系吗?在上面的讲解中大家应该有些了解了。 类就是对象的抽象(或者模板),对象就是类的具体(或者实例) 。比如手机是一个抽象的概念,它代表着类。而一部 iphone 6

多态的笔记

99封情书 提交于 2020-01-01 00:24:44
文章目录 多态 多态的概述 多态中成员访问特点 多态的好处和弊端 写一个多态程序的步骤(必须掌握) 多态中的转型 多态的案例 抽象类 抽象类的概述 抽象类的特点 **抽象类的成员特点** 抽象类的案例 接口 接口的概述 接口的举例 接口的特点 **接口的成员特点** 接口的案例 类和接口的关系 抽象类和接口的区别 综合案例 多态 多态的概述 什么是多态? 答:同一个对象,在不同的时刻有多种形态 比如: Animal an = new Cat ( ) ; Animal an = new Dog ( ) ; 多态的举例 绿巨人 , 是正常人的时候是班纳,发怒后就变为绿巨人 毛毛虫,刚开始是个虫,过段时间后就变为蝶了。 多态的形式:具体类多态、 抽象类多态、接口多态 多态的前提 要有实现 || 继承关系 要有方法的重写 体现:继承关系下,子类重写父类的方法;实现关系下,实现类 来实现接口中的方法 父类的引用类型的变量指向了子类对象,接口的引用类型变量指向了实现类对象 多态中成员访问特点 成员访问特点 成员变量( 实际开发中不太关注 ) 编译看左边,运行看左边 成员方法(重点掌握) 编译看左边,运行看右边 总结:编译全看左边,只有成员方法运行看右边 代码展示: // 动物类 public class Animal { public int age = 40 ; public void

多态,抽象类和抽象方法,接口

佐手、 提交于 2019-12-30 05:36:05
多态:   继承,重写后,基类引用指向子类对象。   调用基类被重写的方法时,实际new的是哪个子类对象,调用哪个子类对象方法。   多态是执行期间(非编译)判断所引用的对象的实际类型。   提升可扩展性。   使用举例:      方法传入基类对象(接口对象)作为形参,实际调用时,如果传入的是子类对象(实现接口的对象),则调用形参成员时,调用的是实际参数,即子类对象(实现接口的对象)的成员。 抽象类和抽象方法:   抽象方法只需声明,不用实现。   public abstract void a();   抽象方法用来被子类重写,且子类必须重写,否则子类要声明为抽象类。   有抽象方法的类即为抽象类且必须声明为抽象类。   抽象类只能被继承,不能实例化。 接口:   public interface A{     public static final int i = 1;     public void B();   }   接口可以多重实现。   接口是抽象方法和常量值的集合。   接口是特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现。   变量默认且必须public static且final。   方法默认且必须public abstract。   接口解决了“多继承”时,子类对象包含的多个父类对象成员重名问题,成员属于接口,不属于实现接口的对象。  

java基础-接口

我与影子孤独终老i 提交于 2019-12-30 05:35:30
一.接口的定义(接口interface)   接口是抽象方法和常量值的定义的集合。其实接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现。    接口(interface)是一种特殊的抽象类, 在这种抽象类里面,所有的 方法都是抽象方法 ,并且这个抽象类的属性(即成员变量)都是声明成“ public static final 类型 属性名”这样的,默认也是声明成 “public static fina l”即里面的成员变量都是公共的、静态的,不能改变的。因此在接口里面声明常量的时候,可以写成“public static final 类型 常量名=value(值)”这样的形式,也可以直接写成“类型 常量名=value(值)”如:“public static final int id=10”可以直接写成“int id=10”这样的形式,因为在接口里面默认的属性声明都是“public static final”的,因此“public static final”可以省略不写。在接口里面声明的抽象方法可以不写abstract关键字来标识,因为 接口里面所有的方法都是抽象的 ,因此这个“abstract”关键字默认都是省略掉的,如在一个接口里面声明这样的三个方法:“public void start()”、“public void run()”、“public

java多态

 ̄綄美尐妖づ 提交于 2019-12-30 05:34:30
多态的概述 多态是继封装、继承之后,面向对象的第三大特性。 最终多态体现为父类引用变量可以指向子类对象。 多态的前提是必须有子父类关系或者类实现接口关系,否则无法完成多态。 在使用多态后的父类引用变量调用方法时,会调用子类重写后的方法。 多态的定义与使用格式 多态的定义格式 :就是父类的引用变量指向子类对象 父类类型 变量名 = new 子类类型(); 变量名.方法名(); l 普通类多态定义的格式 父类 变量名 = new 子类(); 如: class Fu {} class Zi extends Fu {} //类的多态使用 Fu f = new Zi(); 抽象类多态 接口多态 多态-成员的特点 l 多态成员变量 当子父类中出现同名的成员变量时,多态调用该变量时: 编译时期:参考的是引用型变量所属的类中是否有被调用的成员变量。没有,编译失败。 运行时期:也是调用引用型变量所属的类中的成员变量。 简单记:编译和运行都参考等号的左边。编译运行看右边。 l 多态成员方法 编译时期:参考引用变量所属的类,如果类中没有调用的方法,编译失败。 运行时期:参考引用变量所指的对象所属的类,并运行对象所属类中的成员方法。 简而言之:编译看左边,运行看右边。 instanceof关键字 我们可以通过instanceof关键字来判断某个对象是否属于某种数据类型。如学生的对象属于学生类

五.面向对象

a 夏天 提交于 2019-12-29 20:22:41
目录 1 面向对象 2 面向对象三要素 3 Python面向对象 4 装饰一个类 5 对象的销毁 6 方法的重载 7 类的继承 8 多态 1 面向对象 什么是面向对象? 一种认识世界,分析世界的方法论。将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。 对象instance、object 对象是类的具体,是一个实体 对于我们每个人这个个体,都是抽象概念人类不同的实体。 *属性,它是对象状态的抽象 *操作,它是对象行为的抽象 2 面向对象三要素 1.封装 组装:将数据和操作组装到一起。 隐藏数据:对外只暴露一些接口,通过接口访问对象。 2.继承 多复用,继承来的就不用自己写了 多继承少修改,使用继承来修改,来体现个性 3.多态 面向对象编程最灵活的地方,动态绑定 3 Python面向对象 Python的类 class ClassName : 语句块 # 1.必须使用class关键字 # 2.类名必须是用大驼峰命名 # 3.类定义完成后,就产生了一个类对象,绑定到了ClassName上 class MyClass : """A example class""" x = 'abc' #类属性 def foo ( self ) : #类属性,也是方法 print ( self . x ) return 'My Class' print (

Java动态代理之JDK实现和CGlib实现

大憨熊 提交于 2019-12-29 14:31:53
一:代理模式(静态代理) 代理模式是常用设计模式的一种,我们在软件设计时常用的代理一般是指静态代理,也就是在代码中显式指定的代理。 静态代理由 业务实现类、业务代理类 两部分组成。业务实现类 负责实现主要的业务方法,业务代理类负责对调用的业务方法作拦截、过滤、预处理,主要是在方法中首先进行预处理动作,然后调用业务实现类的方法,还可以规定调用后的操作。我们在需要调用业务时,不是直接通过业务实现类来调用的,而是通过业务代理类的同名方法来调用被代理类处理过的业务方法。 静态代理的实现: 1:首先定义一个接口,说明业务逻辑。 package net.battier.dao; /** * 定义一个账户接口 * @author Administrator */ public interface Count { // 查询账户 public void queryCount(); // 修改账户 public void updateCount(); } 2:然后,定义业务实现类,实现业务逻辑接口 import net.battier.dao.Count; /** * 委托类(包含业务逻辑) * * @author Administrator * */ public class CountImpl implements Count { @Override public void queryCount

自学Java之day11_final、权限修饰扶、内部类、引用类型小结

Deadly 提交于 2019-12-29 03:41:46
final关键字 概述: 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写。那么我们能不能随意的继承API中提供的类,改写其内容呢?显然这是不合适的。为了避免这种随意改写的情况,Java提供了 final 关键字,用于修饰不可改变内容。final: 不可改变。可以用于修饰类、方法和变量。 类:被修饰的类,不能被继承。 方法:被修饰的方法,不能被重写。 变量:被修饰的变量,不能被重新赋值。 final关键字用来修饰一个类 格式: public final class 类名称 {   // ... } 含义: 当前这个类不能有任何的子类。 注意: 一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写 代码演示 package demo01; //被final修饰的类 public final class MyClass /*extends Object*/ { public void method() { System.out.println("方法执行!"); } } final关键字用来修饰一个方法 格式: 修饰符 final 返回值类型 方法名称(参数列表) { // 方法体 } 含义: 这个方法就是最终方法,也就是不能被覆盖重写。 注意事项: 对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾 代码演示

六.Python面向对象

安稳与你 提交于 2019-12-28 20:13:38
目录 语言分类 面向对象 面向对象三要素 Python的面向对象 01 语言分类 面向机器: 抽象成机器指令,机器容易理解。 代表:汇编语言 面向过程: 做一件事情,排除个步骤,第一步干什么,第二步干什么,如果出现情况A,做什么处理,如果出现了情况B,做什么处理。 问题规模小,可以步骤化,按部就班处理 代表 C语言 面向对象OPP 相比较函数,面向对象是更大的封装,根据 职责在一个对象中封装 多个方法 在完成某一个需求前,首先确定 职责 —— 要做的事情(方法) 根据 职责 确定不同的 对象,在 对象 内部封装不同的 方法(多个) 最后完成的代码,就是顺序地让 不同的对象调用 不同的方法 注重 对象和职责,不同的对象承担不同的职责 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路 需要在面向过程基础上,再学习一些面向对象的语法 代表 C++、java、Python等 02 面向对象 什么是面向对象? 一种认识世界,分析世界的方法论。将万事万物抽象为类。 类class 类是抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。 对象instance、object 对象是类的具体,是一个实体 对于我们每个人这个个体,都是抽象概念人类不同的实体。 *属性,它是对象状态的抽象 *操作,它是对象行为的抽象 03 面向对象三要素 1.封装 组装:将数据和操作组装到一起。

JAVA的基础知识(一)

半城伤御伤魂 提交于 2019-12-28 02:47:58
1、对象的概念 Java 是 面向对象的编程语言 ,对象就是 面向对象程序设计的核心 。所谓对象就是真实世界中的实体,对象与实体是一一对应的,也就是说现实世界中每一个实体都是一个对象,它是一种具体的概念 2、对象的特点 对象具有属性和行为。 对象具有变化的状态。 对象具有唯一性 。 对象都是某个类别的实例 。 一切皆为对象,真实世界中的所有事物都可以视为对象。 3、面向对象和面向过程的区别 面向过程:一种较早的编程思想,顾名思义就是 该思想是站着过程的角度思考问题 ,强调的就是 功能行为 ,功能的 执行过程,即先后顺序 ,而每一个功能我们都使用函数(类似于方法)把这些步骤一步一步实现。使用的时候依次调用函数就可以了。 面向过程的设计: 最小的程序单元是函数 ,每个函数负责完成某一个功能,用于接受输入数据,函数对输入数据进行处理,然后输出结果数据,整个软件系统由一个个的函数组成,其中作为 程序入口的函数称之为主函数 ,主函数依次调用其他函数,普通函数之间可以相互调用,从而实现整个系统功能。 面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃。为了解决这一种软件危机,我们提出面向对象思想。 面向过程的缺陷:是 采用指定而下的设计模式 ,在设计阶段就需要考虑每一个模块应该分解成哪些子模块,每一个子模块又细分为更小的子模块,如此类推,直到将模块细化为一个个函数。