面向对象思想(二)

Linux虚拟机mysql安装教程(详细步骤)出现了一个错误:依赖检测失败 Linux虚拟机安装mysql的详细步骤(有报错预警哦) 阅读详情

一.封装

回顾:

通过实例对象可以任意访问成员变量,这就造成了极大的安全隐患因此采用封装的手段
vate,default,protected,public;
private只能允许本类访问;
default允许允许同一包下访问;
protected允许继承本类的子类访问;
public允许外部类访问;
通常情况下,为了保证程序的高内聚低耦合所以,只暴露少量外部方法,将成员变量做private封装只提供get,set方法。例如:工具类Bean类。这样减少外部对类和方法内部的参与。
假如要写一个父类类,有很多方法需要子类继承并实现的,这样的通常使用protect修饰。
像public这样一般修饰提供给外部类使用的方法或成员,例如:utils工具类和构造方法

特别注意:

外部类修饰词只有两种默认即public和默认,因为其他修饰符对外部类无实际意义。

二.深入理解构造器

回顾:

用处:创建对象时初始化。
调用构造方法创建实例时,系统已经在堆内存分配内存空间,并初始化。
当构造方法结束时,将实例对象返回。
初始化规则:基本数据类型0,或者false,引用型数据类型都是null。

特别注意:

使用工厂模式,反射等方式,依然是依赖构造器实现的。

子类继承父类时,执行构造方法,都会先调用一次父类的构造方法。(按层次依次调用)

三.继承

回顾:

继承为单继承。
重写规则:“两同”(方法名相同,参数列表不同)“两小”(异常和返回值类型要小于父类)“一大”(访问权限要大于等于父类)

特别注意:

如果子类和父类有同名Field,则系统会分配两块内存空间(堆内存)分别存储两个Field,并在子类中把父类的Field隐藏起来。并不是完全覆盖了。可以通过super调用父类隐藏的Field或者是父类原有方法(重写之前的同名方法)。

四.多态

回顾:

什么是多态性:
在同一类中方法的重载,体现了方法的多态性。
同名方法在子类和父类之间产生多态,体现了类的多态性。
接口和抽象类也体现了接口的多态性。

特别注意:

多态存在的必要条件:

1必须要有继承

2必须要复写

3父类引用指向子类对象

class Father{
 public int a=6;
 public void test(){
   syso.printf("父类方法");
   }
   punlic void fatherMotherd(){
   syso.printf("父类方法");
   }
}
class Son extends Father{
  public float a=3.0;
  public void test(){
  syso.printf("子类方法");
  }
  public void sonMethord(){
  syso.printf("子类特有方法");
 }
}

class test{
  public void main(String[] args){
  //父类引用指向子类对象,这也是一种向上转型,是系统自动完成的。
  //fason 的编译时类型是Father,而运行时类型是Son  
  Father fason=new Son();

  //对象Field是不具备多态性的,系统总是访问编译时的Field,而不是运行时的Field,因此下面代码输出的a是6!
  syso.printf("输出a="+fason.a);

  //执行方法时分为以下几种情况:

  //1.执行父类方法,这时没有体现出多态。
  fason.fatherMethord();

  //2.执行父类没有的方法,即子类的方法,这时会出现编译失败。因为在编译期,该引用的类型并没有该方法,因此此时需要向下转型!// (Son)fason;将其进行向下转型
  //fason.sonMethord();//由于不能执行所以注释掉了!

  //3.执行同名方法,这是就出现了多态,此时会根据执行时类型执行对应的方法。
   fason.test();
  //此刻输出的就是子类的方法,如果想要执行父类方法则需要super.test(); 
 }
}

五.向下转型Intanceof的用法

用于判断前面的数是否是后面数的子类,实现类,或者对象。可作为是否向下转型的依据。也可以用来判断某个view是否是某个特定的布局。
前一个操作数通常是引用型变量,
后一个操作数通常是一个类接口,或者是一个实例。
前后两个操作数之间要有继承关系。
OBYC自动科目确定整理 WGI是用来重估发货的,通过比较发货时的价格和最新计算的价格,以此将所有差异过账到分配给此事务码的总账科目。是工厂还是公司,一般项目中都是使用工厂,使用工厂的意思就是物料在每个工厂下有一个价格,如果使用公司,则一个公司下的所有工厂都使用一个价格。如果该物料用的是移动平均价,那么该库存依然还存在的情况下,这个价格差异会过账到存货科目上而不会过账到存货的价格差异科目上。用于确定存货评估过账的存货冲抵科目。事务码WGR是用来重估工厂收货的,根据 计算出来的价格差异,把库存的调整过账分配给这个事务码中的总账科目。 阅读详情

相关推荐

用MCP扩展Cursor的5种神奇用法:从文件操作到网页抓取实战

本文深入探讨了如何利用MCP(Model Context Protocol)扩展Cursor AI编程助手,解锁五种高效实用场景。从文件系统操作、网页内容抓取,到数据库查询、Figma设计稿对接,乃至构建自定义MCP服务器,文章通过实战案例展示了如何将Cursor从代码编辑器升级为能理解并操作工作环境的智能助手,显著提升开发效率与自动化水平。

weixin_29231027的博客 315

java 子类继承父类各方法的执行顺序

结论:    java中子类继承父类各方法的执行顺序:(这里只写jvm自动调用的方法的顺序,包括静态代码块、代码块、构造方法)       1、第一次创建子类对象        父类静态代码块        子类静态代码块        父类代码块        父类构造方法        子类代码块        子类构造方法        2、之后创建子类对象,子类和父类的静态代码块不会执行,...

qq_36893618的博客 6450

【机械臂算法】基于最小惯性参数集的动力学辨识仿真实践

本文深入探讨了机械臂动力学参数辨识的核心挑战与解决方案,重点阐述了基于最小惯性参数集的理论与方法。通过分析PUMA560实例,详细介绍了利用QR分解法或符号推导法获取可辨识参数集,并系统讲解了从激励轨迹设计、仿真数据采集、线性系统求解到模型验证的完整实践流程,为高精度动力学建模与控制奠定了坚实基础。

weixin_29054399的博客 376

java中有关父类和子类的成员执行顺序问题解析

前言 最近看到这么个问题,大约就是父类子类中好多成员、方法,有的静态有的非静态,实例化一个或者多态调用的时候具体怎么个执行顺序,本以为自己知道的,结果越绕越糊涂,在此记录学习过程。 结论 如果实例化一个子类对象 Chlid mChlid = new Chlid(); 执行顺序如下 1、父类静态变量和静态代码块(先声明的先执行); 因为有继承关系,所以先加载父类,加载过程中执行了静态...

Demo_Jin的博客 1299

hive sql每个用户的累积访问次数

我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/23 6 U01 2017/2/22 4 要求使用SQL...

weixin_39150719的博客 3481

【网络安全】Python代码审计高危函数与安全审计建议

Python 灵活且动态的特性使得开发便捷,但同时也带来了严重安全隐患。如果开发者缺乏安全意识,极易引入命令执行、反序列化漏洞及模板注入漏洞。本文总结了 Python 中常见的高危函数、模块和第三方库,并给出对应的审计建议及其原理解析,供安全研究人员和开发者参考。

等风来 416

子类不会覆盖父类的构造函数,相反为什么必须一开始调用父类的构造函数。

Java中,默认情况下,如果子类的构造函数没有显式地调用父类的构造函数,那么编译器会隐式地插入一条默认的super()语句,即调用父类的无参构造函数。如果父类没有无参构造函数,或者需要调用父类的其他构造函数,则需要在子类的构造函数中显式地使用super关键字来调用适当的父类构造函数。通过调用父类的构造函数,可以确保父类中定义的实例变量和其他成员在子类对象被创建之前得到正确的初始化。总之,子类需要在构造函数中调用父类的构造函数,以确保正确初始化父类的状态,并在此基础上完成自身的初始化。

weixin_47495688的博客 705

innovus:NRDB-2276 special net route layer与NanoRouteMode route layer冲突问题解决方法

NanoRouteMode中设置绕线层次2-6,但是被动到的special net有8-11的preferred route layer,这个层次可能是create_route_type+set_ccopt_property -net_type 定义的。二者绕线层次范围有冲突,导致在调整过这条net后再绕线就会提示失败。然后再下route_design 等route命令去绕别的net。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1099

Java面向对象思想精华(二)

Java面向对象核心思想一、对象创建的内存模型(一)、栈、堆、方法区存储的内容三级目录 一、对象创建的内存模型 (一)、栈、堆、方法区存储的内容 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身 。 栈区: 1.每个线程包含一个栈区,栈中只保存基础数据类型的值和对象以及基础数据的引用 2.每个栈中的数据(基础数据类型和对象引用)都是私有的,其

Superclover_的博客 3813

【目标跟踪】多目标跟踪的评价工具motmetrics怎么使用?

多目标跟踪,通过motmetrics测试评价对应的视频。

聿默的博客 5368

企业微信开发007_域名主体校验未通过,需配置备案主体与当前企业主体相同或有关联关系的域名_企业内部自建应用开发_配置可信域名_回调URL_可信IP---企业微信开发009

因为我这个企业微信是,已经注册了服务商了,所以我又注册了一个不是服务商的测试企业,没有实名认证的,去试了试。而且,网络上找的教程,都是不够详细的,还是会碰到各种各样的问题,记录下来,为后来者提供便利。首先我用natapp.cn 申请了一个免费的域名,然后去,一个,企业微信上去配置,注意。我这个域名,的主体,可能是域名服务商,比如阿里域名 等等的 不是一般的企业域名。我这个企业微信,是开通了服务商的,企业微信,右上角有服务商管理后台的。到时候,直接用,他们自己企业注册的域名,已经备案的再去尝试,

添柴程序猿的专栏 1694

二、Java面向对象(7)_封装思想——理解封装思想

2018-04-30 理解封装思想 封装就是将属性私有化,提供公有的方法访问私有的属性。 *实现封装的步骤: (1)修改属性的可见性来限制对属性的访问。 (2)为每个属性创建一对赋值(set方法)方法和取值(get方法)方法,用于对这些属性的访问。 (3)在赋值和取值方法中,加入对属性的存取限制。 **为了实现良好的封装性,我们通常将类的成员变量声明为pr...

ams90203的博客 550

材料仿真软件:Materials Studio_(14).电学性质计算

设置计算参数,包括 k 点网格、交换相关泛函等。

kkchenjj的博客 1863

JavaScript 面向对象编程思想(二)

一:面向对象编程思想 1.单例模式 在真实项目中,为了实现模块化开发或者团队协作开发,我们经常应用单例模式(一般业务逻辑部分的代码都是依托单例模式设计规划的) 单例模式的由来:在很久以前,JS都是值类型,没有引用数据类型,如果后面编写的代码,创建的变量或者函数名和之前一样,会把之前存储的值替换掉;真实项目中,团队协作开发,如果是这样来处理,经常会导致相互代码的冲突:‘全局变量污染’ ‘全局...

weixin_30364325的博客 126

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JAVA基础(二)面向对象思想

JAVA是一门面向对象的语言,面向对象自然是开发中的主要核心,然而到底面向对象的思想是什么呢?如何去理解呢,这里从一个小例子出发来解释一下面向对象的思想。假如有一个人,他得家里有两台打印机,一个HP,一个Canon,两个都有开机、打印、关机的功能,而Canon关机之前有清除功能,问题来了,那么如何实现? 也许我们第一反应是写一个HP类和Canon类,,各自实现自己的功能,然后再写一个实现类调用就好

九天烽火 365

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

其实我们并不那么懂面向对象思想二

待写待写!

javaSamBlog 103

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

黑马程序员(二)面向对象思想

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 面向对象 (1)什么叫面向对象? 面向对象就是一种常见的程序结构设计方法。 面向对象思想的基础是将相关的     数据和方法放在一起,组合成一种新的复合数据类型, 然后使用新创建的复合    数据型 作为项目的基础。 (2)面向对象:是基于面向过程的一种思想。      面

HGY_1992的博客 684

二、java面向对象三大思想

一、封装 a、方法的封装 b、类的封装(属性和方法) c、在方法封装时可以使用重载,来让相同方法名且参数列表不同的方法存在同一个类中。 二、继承 通过extends关键词在子类中获取父类的方法跟属性。 存在继承关系时,在能在子类中实现来自父类中方法的覆盖实现,成重载,override java中所有的对象有直接或者间接是Object类的子类。 三、多态:编译时状态跟运行时状态不一样

格乄子 568

Python 重温面向对象思想(二)

  在上一篇,已经讲完了面向对象的三大特征之封装。按照顺序,下面是继承与多态。   啰嗦之前先提一下,继承与多态,与设计模式、设计原则是密不可分的。 继承   继承指的是类与类之间的关系,是一种什么“是”什么的关系,继承的功能之一就是用来解决代码重用问题。虽然从人类思维来讲,继承一般的逻辑是先有父再有子,但是写的时候可能要稍微有点不同。往往是从子类这一类共同的行为中抽象化出来的父类,也因为父类是抽象出来的不具体,所以有些功能都没办法写,只能写个占位符。实现往往都在子类。   看一个场景,老王要开车到某地。分

qq_39956149的博客 227

javascript面向对象思想的学习(二)

       随着学习的进行,不可避免的要学习使用面向对象的思想去解决问题,然而经过好多资料的查询都并没有很好的解决自己的问题,那些讲解很好理解,但是却不会熟练的运用到解决实际问题中。所以先把自己理解的一些东西做些总结记录。        javascript是一种基于原型的语言,要和java、c++等基于类的语言区分清楚,js只有对象。具有一种所谓的原型对象(prototypical ob...

liunianweimo的博客 160

跳出面向对象思想(二) 多态

原文 简述 多态一般都要跟继承结合起来说,其本质是子类通过覆盖或重载(在下文里我会多次用到覆盖或重载,我打算把它简化成覆重,意思到就好,不要太纠结这种名词。)父类的方法,来使得对同一类对象同一方法的调用产生不同的结果。这里需要辨析的地方在:同一类对象指的是继承层级再上一层的对象,更加泛化。 举个例子: An...

weixin_33754065的博客 114

二、基础语法--面向对象思想

当需要实现一个功能的时候,不关心具体的步骤,而是找一个已经具有该功能的人,来帮我做事。Eg:找一个JDK给我们提供好的array类,其中有一个toString方法,直接就能把数组变成想要的格式的字符串。有参数:小括号中有内容,当一个方法需要一些数据条件,才能完成任务的时候,就是有参数。→ 就是一种特殊形式的类(用于保存数据的Java类,可以用它创建对象,保存某个事务的数据。用类设计对象处理某一个事物的数据时,应该把要处理的数据,以及处理这些数据的方法,设计到一个对象中去。对象本质上是一种特殊的数据结构。

weixin_58738870的博客 894

java系列总结(二)面向对象基本思想

这篇文章主要介绍了面向对象的基本思想,匿名对象,构造函数,构造方法,构造代码块,静态,静态代码块,以及单例设计模式的两种方法懒汉式和饿汉式。

wang_buaa的博客 404

二、Java面向对象(9)_面向对象——多态思想

2018-05-02 多态思想 多态是同一个行为具有多个不同表现形式或形态的能力。 多态就是同一个接口,使用不同的实例而执行不同操作,如图所示: 多态性是对象多种表现形式的体现。 现实中,比如我们按下 F1 键这个动作: 如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档; 如果当前在 Word 下弹出的就是 Word 帮助;...

ams90203的博客 145

java的封装思想_二、Java面向对象(7)_封装思想——理解封装思想

2018-04-30理解封装思想封装就是将属性私有化,提供公有的方法访问私有的属性。*实现封装的步骤:(1)修改属性的可见性来限制对属性的访问。(2)为每个属性创建一对赋值(set方法)方法和取值(get方法)方法,用于对这些属性的访问。(3)在赋值和取值方法中,加入对属性的存取限制。**为了实现良好的封装性,我们通常将类的成员变量声明为private,再通过public的方法来对这个变量进行访问...

weixin_42511587的博客 165

CSS模块化(二) CSS的面向对象思想

在CSS中其实也有面向对象里的三大思想,封装,继承,多态

hacke2' Blog 6287
上一篇: 面向对象思想(一)
下一篇: 数据类型转换,常量池,及final关键字
Nela
博客等级 码龄11年 9粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值