类和对象:
类:主观抽象,是对象的模板,可以实例化对象
习惯上类的定义格式:
package xxx;
import xxx;
public class Xxxx{
属性 ······;
构造器 ······;
方法 ······;
}
定义属性:实例变量
格式:[ 修饰符 ] 类型 变量名 [ = ? ]
实例变量定义在类中但在任何方法之外。
实例变量有默认值:各种各样的0。(同数组)
实例变量的作用域至少在本类内部,受访问控制符的限制。
在重合作用域,实例变量和局部变量允许有命名冲突,“局部优先”。
定义方法:
格式: [ 修饰符 ] 返回类型 方法名( 参数列表 ) [ throws 异常 ] { ······ }
java中所有参数都是值传递。
当没有值返回时,返回类型必须被定义为void。
返回类型必须与方法名相邻,其他修饰符可以调换位置。
构造器:
在创建对象的过程中调用的方法。
构造器没有返回类型。
构造器的名字与类名相同。
格式为:[ 修饰符 ] 类名( 参数列表 ){ },修饰符可以是private、 protected、 default、private
在一个对象的生成周期中构造器只用一次,由系统自动调用,不允许手工调用。
程序员没有提供一个构造器,系统会自动提供一个无参的构造器。
获得对象的方式:
通过new(在堆空间中申请分配空间),new 类名(),可以通过这种形式或的一个对象,这时的对象是无法使用,必须把他的地址存放进一个对象变量才能够使用。
例如 :
Car c=new Car();
注意:
最好在写类时提供一个无参的构造器。
this关键字:
this是个隐式参数,代表当前对象;
publie class Student{
private String name;
public void setName(String name){
this.name=name; //this.name为当前对象的成员变量
}
}
如果某个构造方法的第一个语句具有形式this( ··· ),那么这个构造方法将调用同一类中的其他构造方法。
注意:
在构造器中this(...)必须放在该构造器的第一行。
this不能出现在静态方法里面
类、对象、实例三者的关系:
类:是对象的模板,可以实例化对象
对象:类的个体
实例:实现的对象
student s;
s=new student();
其中 Student为类,s为对象,new Student()为实例,s赋值后也是实例了。
方法重载:
方法名相同,参数表不同,不考虑返回值类型(但最好还是使返回类型一致)。
编译器根据参数,选择一个方法,如果没有完全匹配的,对于参数表采用“向上就近匹配原则”,但不允许模棱两可。
方法重载屏蔽了一个对象的同一类方法由于参数不同所造成的差异。
封装:
类的属性加private修饰符,来限制只能够在类的内部进行访问,有效的保护数据。
对于类中的私有属性,要对其给出一对方法getXxx(),setXxx()访问私有属性,保证对私有属性的操作的安全性。
方法公开的是方法的声明,即只须知道参数和返回值就可以调用该方法,隐藏方法的实现的细节。
一个对象和外界的联系应当通过一个统一的接口,应当公开的公开,应当隐藏的隐藏。
继承:
父类到子类是从一般到特殊的关系。
泛化:将不同子类中的共性抽象成父类的过程。
特化:在原有父类的基础上加入一些个性的过程。
原则:父类放共性,子类放个性。
继承的关键字:extends
Java只支持单继承:一个类最多只有一个直接的父类。
方法覆盖:
方法名:相同
参数表:相同
访问限制符:相同或者更宽
返回值类型:相同或者子类返回的类型是父类返回的类型的子类(在JDK5.0以后)
抛出的异常:不能比父类更宽。
super关键字:
super()表示调用父类的构造器
super()也和this()一样必须放在方法的第一句
super()和this()不能同时出现
super可以屏蔽子类属性和父类属性重名时带来的属性遮盖,super. 表示调用父类的方法或属性
在子类的构造器中如果没有指定调用父类的哪一个构造器,那么就会调用父类的无参构造器,即super()
注意:
父类的构造器不能被子类继承
方法和属性可以被继承,权限不限制能否继承过来,限制的是能否直接访问
先构造父类,后构造子类,先this后super
多态:
多态分为两种:编译时多态和运行时多态。
编译时类型:主观概念,把它看作什么。
运行时类型:客观概念,实际它是什么。
例:Animal a=new Dog();
指着狗问,这个动物是什么?
运行时多态的三原则:
对象类型不变。
只能对对象调用编译时类型中定义的方法。
在程序的运行时,根据对象的运行时类型,找覆盖后的方法来调用。(运行时动态类型绑定)
强制类型转换: 一定没有新对象生成。(父类的引用赋值给子类的引用需要进行强制类型转换)
关键字:instanceof
用法:引用 instanceof 类名 判断这个引用所指向的对象是否属于这个类。
用在强制转换之前,避免类型转换异常。
if(a instanceof Dog){
Dog d=(Dog)a;
}
多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
发表评论
-
java设计模式
2012-04-20 16:45 1285一、什么是软件设计模式? 设计模式:是一套被反复使用、多数 ... -
Thread 与Runnab le区别
2012-03-02 14:05 2014大家都知道多线程可以 ... -
I/O流与文件
2012-02-06 15:22 866I/O流 字节输入流:InputStream类为所有 ... -
多线程
2012-02-06 15:23 781多线程: 进程与线程: 进程:同一个操作系统中 ... -
布局管理器与事件处理
2012-02-06 15:23 914图形界面: 布局管 ... -
异常与图形界面
2012-02-06 15:23 716异常: 异常的分类 ... -
反射与内部类
2012-02-06 15:24 1042反射: 反射:在运行时动态分析或使用一个类进行工作。 ... -
java集合框架
2012-03-26 19:33 914集合:保存多个其他对象的对象,不能保存简单类型 Li ... -
抽象类与接口
2012-02-05 19:17 760修饰符abstract:抽象 ... -
关键字
2012-02-05 19:14 706修饰符static: 把对 ... -
java环境配置与基本概念
2012-02-05 19:11 671配置java环境变量: JAVA_HOME:配置JD ... -
运算符、流程控制以及数组
2012-02-05 19:09 830局部变量:不是声明 ... -
登陆界面的开发
2012-01-08 17:36 808在开发登陆界面的前面,我们先须要熟悉和熟练构造方法,构造方法 ... -
类与对象
2012-01-08 16:54 785什么是面向对象的编程? OOP:1、在程序中模拟现实世界中的 ... -
类与对象
2012-01-08 16:50 773什么是面向对象的编程? OOP:1、在程序中模拟现实世界中的 ... -
java中能当做基本数据类型的类String
2012-01-08 15:47 787String是java中的一个类,而不是一种基 ... -
java虚拟机与java跨平台运行的关系
2012-01-08 15:24 10371、现写一个简单的java小程序 publicv cl ... -
java中的关键字
2011-11-19 23:45 840最近系统的学习了java的关键字,我才发现原来不知 ... -
与java第一次亲密的接触
2011-11-01 21:58 791刚开始学JAVA时,只知道不停的看书。从 ...
相关推荐
内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。
嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip
内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。
少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。
嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip
少儿编程scratch项目源代码文件案例素材-驾驶通关.zip
小区开放对周边道路通行能力影响的研究.pdf
内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。
少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip
内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。
基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf
嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip
Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统
C# WPF - LiveCharts Project
少儿编程scratch项目源代码文件案例素材-恐怖叉子 动画.zip
嵌入式八股文面试题库资料知识宝典-嵌⼊式⼯程师⾯试⾼频问题.zip