面向对象(特点)、局部变量与全局变量的区别、匿名对象、构造函数、

一、
    1,本文档为记录练习面向对象学习的文档。

    2: 面向对象的三大特点: 1)、封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式,
               优点:1、隔离了变化。 2、便于使用,提高了复用性。 3、提高了安全性。
               原则:1、把不必要对外显示的都隐藏掉。 2、对外提供必要的公共方法作为操作接口。
                    (私有是封装的一种表现形式)。

                                       2)、继承:

                                       3)、多态: 必须有 继承 、动态方法的重写 、父类引用指向子类的对象。

     3:面向对象的开发就是在寻找对象使用, 在没有对象使用的情况下, 我们应当自己创造对象使用。
          也可以说是: 找对象 建立对象 使用对象 维护对象之间的关系。

二、对象与类之间的关系

       类: 现实生活中对事物的描述。

   对象: 这一类事物的实实在在的个体。

    生活中有有一类个体:他们都会拿枪、射击、穿迷彩服、越野、杀敌等功能。------这就是一个军人的类。 类有属性(成员变量)和方法(动态属性)。
    而具体到个体: 士兵1号、士兵2号、士兵3号等 就是这个类中的具体实体-----这就是一些士兵的对象。

  而映射到java中 ,这些描述就是class定义的一个类
  具体的对象, 就是new关键字在堆(heap)中创建的实体。

三 成员变量 与 局部变量
  作用范围: 成员变量 作用于整个类的内部
       局部变量 作用于方法或者语句块之中

  内存中的位置 :   成员变量 存在于堆内存中,因为对象的存在而存在。 会先有系统的默认初始化(0 null), 之后才是我们定义个显示初始化。
          在没有引用指向其对象的时候(及变成垃圾对象),被垃圾回收机回收后消失。
          局部变量 存在于栈内存中,因为语句的执行而存在。 必须人工给予初始化,否则次变量不能使用。相关语句执行完毕后自动消失。

 

四、 匿名对象

  如: new Car(); new Car().color = "blue"; new Car().runCar();

    特点:只能使用一次, 使用之后便会变成垃圾, 等垃圾回收机回收清空内存。
       匿名对象调用其属性没有意义, 调用其方法具有一定的意义。

    使用情况:1)、只对对象的 方法 进行 一次调用 的时候。 这样写比较简便。 如果要对对象的多个成员进行调用,就必须给对象命名。
           2)、可以将匿名对象当成参数紧传递。

 

构造函数:

    特点:函数名与类名一致, 不能定义返回值类型, 不能使用return语句。 对象建立时就会调用与之实参相对应的构造函数。
       构造函数只在构造是调用一次,之后不能重复调用, 而普通函数可以一直调用。
    作用:给对象进行初始化(在默认初始化和显示初始化之后)。
    注意:1、当没有写构造函数时,系统会自动给加上一个空参、空语句的构造函数, 否则,对象不能被构造出来。
         2、当自定义了构造函数时,在new新对象时就必须按照相对应的形参进行创建。
         3、当有多个构造函数存在时,它们以重载的方式存在, 通过new对象时传入的参数(实参)的不同来调用相应的构造函数。

                 在一个构造函数中可以调用(转到)另一个构造函数。

转载于:https://www.cnblogs.com/soficircle/p/6602214.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/488828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

28篇标志性论文见证「自然语言处理NLP」2019-2020年度亮点进展

来源:专知【导读】自然语言处理专家elvis在medium博客上发表了关于NLP在2019年的亮点总结。对于自然语言处理(NLP)领域而言,2019年是令人印象深刻的一年。在这篇博客文章中,我想重点介绍一些我在2019年遇到的与机器学习…

spark while_05_尚硅谷大数据技术之Spark内核解析(1.1) - 十一vs十一

尚硅谷大数据课程之Spark内核解析(作者:尚硅谷大数据研发部)官网:版本:V1. Spark 内核概述Spark内核泛指Spark的核心运行机制,包括Spark核心组件的运行机制、Spark任务调度机制、Spark内存管理机制、Spark核心功能的运行原理等&am…

python中难的算法_一个python的比较难的算法,有懂的人可以进来一下

问 题我的需求:结构数据是这样的:要求按照这样的公式:组合一: 时间词地方词动词等级名词价格词;比如2016年深圳大鹏新区给健康全身检查要多少钱就是按照这样的公式组合出来的关键词那么有什么办法用最短的办法来实现,我下面是我的算法,用pandas的算法:for times in …

android 进程管理机制,Android的进程管理机制

Linux系统对进程的管理方式是一旦进程活动停止,系统就会结束该进程。Android系统虽基于Linux,但在进程管理上,采取了另外一种机制。当当前进程活动停止时,系统并不会立即结束当前进程,而是会将该进程保存在内存中&…

IOS 获取农历方法(转)

声明:以下为使用iOS的 NSChineseCalendar 网上之前发现有人说这个方法不是完全准确,有些日期会显示的不对,本人没有验证过,也实在懒得用C那套方法去实现。 另外我做的不过是个简单的功能,还不包括什么节气 节日那些复杂…

AI初创公司都去哪了?2019年科技公司“五巨头”收购盘点

大数据文摘出品来源:venturebeat人工智能人才的争夺大战愈演愈烈。 今年,Pinterest的首席技术官Vanja Josifovski离职加入了Airbnb,而Pinterest则聘请了沃尔玛的首席技术官Jeremy King来领导工程团队。此外,包括谷歌和苹果在内的所…

angular element()

使用angular.element()获取一个dom的方法。 1.可以使用jquery的选择器 2.可以使用javascript的原生查找元素的方法 下面是angular.element()提供的方法 <input type"checkbox" class"input" /><input type"text" class"input1&quo…

电脑连接android手机测试,关于如何将手机画面投屏到PC的测试(Android)

如何将手机画面投屏到PC上并进行控制呢?为什么要投屏一边LOL ,一边朋友圈?办公呢? 我手机插上充电就好,电脑上刷刷手机呢?哈哈准备工具下载工具如何使用无线使用写在最后后续为什么要投屏我最近买了个带鱼屏, 屏幕长到用不完的地步了. 总想折腾折腾看看还能玩出来什么花样手…

【前沿科技】看完这篇文章前,你绝对想象不到欧美航空机器人竟然发展到这个程度了!...

来源&#xff1a;中国机器人网《工程》杂志撰文认为&#xff0c;工业机器人在许多行业中已经建立了良好的基础&#xff0c;并且通常与现代化的先进制造系统相关联&#xff0c;但是&#xff0c;航空制造仍然严重依赖熟练的手工作业。航空制造中采用机器人的一个主要障碍是缺乏精…

beautifulsoup网页爬虫解析_Python爬虫快速入门,静态网页爬取

在开始之前&#xff0c;请确保你的电脑上已经安装好了BeautifulSoup库&#xff0c;可以通过在命令行中输入pip install beautifulsoup4来进行安装。一、数据解析在爬取之前&#xff0c;我们需要检测下响应状态码是否为200&#xff0c;如果请求失败&#xff0c;我们将爬取不到任…

android获取小程序音频时长,微信小程序获取音频时长与实时获取播放进度

首先在没有播放音频之前&#xff0c;居然拿不到总时长但是在播放之后也需要设置setTimeout来获取所以在监听音频播放进度更新事件中获取。顺便获取当前播放进度按照官方的写法audioPlayed: function () {myAudio.play()setTimeout(() > {myAudio.onTimeUpdate(() > {cons…

Shell awk文本处理,shell脚本编写

Shell awk文本处理,shell脚本编写 一:内容包含awk、变量、运算符、if多分支 <a>语法糖&#xff1a; awk [options] commands files option   -F  定义字段分隔符,默认的分隔符是连续的空格或制表符      使用option中的-F参数定义间隔符号      用$1,$2,$3…

当超级智能崛起时……

来源&#xff1a;资本实验室“大雷&#xff0c;你脑子没出啥毛病吧&#xff1f;”李春花轻声问道&#xff0c;眼睛里满是关切的神色。“喔&#xff0c;你放心&#xff0c;俺没事&#xff01;上次的事故之后&#xff0c;我的芯片和操作系统都已经升级到最新版本啦&#xff01;”…

小米小爱音箱Pro8安装app_小米小爱音箱HD获DXO评为第二!低音准确度很高

前几天&#xff0c;知名评测机构DXOMARK公布了用于测试无线音箱音质的新基准——DXOMARK Speaker。据了解&#xff0c;这个基准由百个测试汇集而成&#xff0c;该机构称这个基准为针对音箱产品唯一的科学评分。11月9日&#xff0c;该机构发文称&#xff0c;小米小爱音箱HD获得了…

Android自定义组合布局,Android 流式布局 + 自定义组合控件

自定义组合控件package yanjupeng.bawei.com.day09.two;import android.content.Context;import android.util.AttributeSet;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.EditText;import android.widget.Lin…

freemark循环map_freemarker中循环map根据key值得value 报错

[#list uMap?keys as key]${uMap[key]}[/#list]Map uMap new HashMap();uMap.put(1,"zhangsan");uMap.put(2,"lisi");model.addAttribute("uMap", uMap);严重: Servlet.service() for servlet springMVC threw exceptionFreeMarker template e…

Lua的垃圾回收机制详解

Lua 是一种轻量级的编程语言&#xff0c;广泛用于嵌入到其他应用程序中&#xff0c;尤其是在游戏开发领域。Lua 的内存管理机制采用了自动垃圾收集&#xff08;Garbage Collection&#xff09;的方法。以下是Lua内存管理的一些关键方面&#xff1a; 垃圾收集原理概述 Lua 使用…

2020年AI怎么发展?听加州大学、谷歌、英伟达、IBM怎么说

来源&#xff1a;机器之心AI 领域最杰出的头脑如何总结 2019 年技术进展&#xff0c;又如何预测 2020 年发展趋势呢&#xff1f;本文介绍了 Soumith Chintala、Celeste Kidd、Jeff Dean 等人的观点。人工智能不是将要改变世界&#xff0c;而是正在改变世界。在新年以及新的十年…

python线程池官网-Python线程池下载txt

下次试试用scrapy模块 # codingutf-8 import requests import threadpool def download_file(i): """下载文件""" download_url f"https://www.txt2016.com/e/DownSys/xiazai/?classid1&pathid0&id{i}" file requests.get(…

select样式的重写

select {/*统一边框*/border: solid 1px #000;/*将默认的select选择框样式清除*/appearance:none;//这个样式就是清楚他的下拉按钮的默认样式-moz-appearance:none;-webkit-appearance:none;/*替换选择框的最右侧显示小箭头图片*/background: url("http://****.png")…