Java语言概述

养龙虾经验:OpenClaw用户必看的3个“省token”救命配置 本文分享了3个优化OpenClaw使用成本的配置方案:1)启用上下文压缩功能,可选择全局或单个代理设置,支持safeguard/adaptive两种压缩模式;2)修改SOUL.md提示词,要求模型回答简洁直接;3)限制对话历史长度。方案一效果最佳,可减少长对话的token消耗,但可能影响连贯性。三种方案可单独或组合使用,需根据实际场景调整参数。文章最后邀请读者分享使用痛点,将针对高频问题撰写解决方案。 阅读详情
Java语言概述
 
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script>
  像所有其他的计算机语言一样,Java的各种要素不是独立存在的,它们作为一个整体共同构成了Java语言。这种关联使得不讲其他方面而单独描述Java的某一方面是困难的。讨论一个特性经常要先具有另外一个特性的知识。因此,本章先对Java的若干主要特性做简单综述。这里描述的主题将给你一个立足点:能够使你编写和理解简单的Java程序。大多数讨论话题将在第1部分的其他章节详细叙述
  1、 面向对象编程
  Java的核心是面向对象编程。事实上,所有的Java程序都是面向对象的,你别无选择。这一点与C++不同,因为在那里你可以选择是否面向对象编程。面向对象编程与Java密不可分,因此,在你编写哪怕是最简单的Java程序以前,也必须理解它的基本原则。因此,本章先从面向对象编程的概念讲起。
  1.1 两种范型
  我们知道,所有的计算机程序都由两类元素组成:代码和数据。此外,从概念上讲,程序还可以以它的代码或是数据为核心进行组织编写。也就是说,一些程序围绕“正在发生什么”编写,而另一些程序则围绕“谁将被影响”编写。这两种范型决定程序的构建方法。第一种方法被称为面向过程的模型(process-oriented model),用它编写的程序都具有线性执行的特点。面向过程的模型可认为是代码作用于数据,像C这样的过程式语言采用这个模型是相当成功的。然而,正如在第1章提到的,当程序变得更大并且更复杂时,就会出现问题。
  为了管理不断增加的复杂性,第二种方式,也就是面向对象的编程(object-oriented programming)被构思出来了。面向对象的编程围绕它的数据(即对象)和为这个数据严格定义的接口来组织程序。面向对象的程序实际上是用数据控制对代码的访问。下面你将看到,将控制的实体变换为数据,可使程序在组织结构上从若干方面受益。
  1.2 抽象
  面向对象编程的一个实质性的要素是抽象。人们通过抽象(abstraction)处理复杂性。例如,人们不会把一辆汽车想象成由几万个互相独立的部分所组成的一套装置,而是把汽车想成一个具有自己独特行为的对象。这种抽象使人们可以很容易地将一辆汽车开到杂货店,而不会因组成汽车各部分零件过于复杂而不知所措。他们可以忽略引擎、传动及刹车系统的工作细节,将汽车作为一个整体来加以利用。
  使用层级分类是管理抽象的一个有效方法。它允许你根据物理意义将复杂的系统分解为更多更易处理的小块。从外表看,汽车是一个独立的对象。一旦到了内部,你会看到汽车由若干子系统组成:驾驶系统,制动系统,音响系统,安全带,供暖,便携电话,等等。再进一步细分,这些子系统由更多的专用元件组成。例如,音响系统由一台收音机、一个CD播放器、或许还有一台磁带放音机组成。从这里得到的重要启发是,你通过层级抽象对复杂的汽车(或任何另外复杂的系统)进行管理。
  复杂系统的分层抽象也能被用于计算机程序设计。传统的面向过程程序的数据经过抽象可用若干个组成对象表示,程序中的过程步骤可看成是在这些对象之间进行消息收集。这样,每一个对象都有它自己的独特行为特征。你可以把这些对象当作具体的实体,让它们对告诉它们做什么事的消息作出反应。这是面向对象编程的本质。
  面向对象的概念是Java 的核心,对程序员来讲,重要的是要理解这些概念怎么转化为程序。你将会发现,在任何主要的软件工程项目中,软件都不可避免地要经历概念提出、成长、衰老这样一个生命周期,而面向对象的程序设计,可以使软件在生命周期的每一个阶段都处变不惊,有足够的应变能力。例如,一旦你定义好了对象和指向这些对象的简明的、可靠的接口,你就能很从容很自信地解除或更替旧系统的某些组成部分。
  1.3 面向对象编程的3个原则
  所有面向对象的编程语言都提供帮助你实现面向对象模型的机制,这些机制是封装,继承及多态性。现在让我们来看一下它们的概念。
  封装
  封装(Encapsulation)是将代码及其处理的数据绑定在一起的一种编程机制,该机制保证了程序和数据都不受外部干扰且不被误用。理解封装性的一个方法就是把它想成一个黑匣子,它可以阻止在外部定义的代码随意访问内部代码和数据。对黑匣子内代码和数据的访问通过一个适当定义的接口严格控制。如果想与现实生活中的某个事物作对比,可考虑汽车上的自动传送。自动传送中包含了有关引擎的数百比特的信息,例如你正在以什么样的加速度前进,你行驶路面的坡度如何,以及目前的档位。作为用户,你影响这个复杂封装的方法仅有一个:移动档位传动杆。例如,你不能通过使用拐弯信号或挡风玻璃擦拭器影响传动。所以档位传动杆是把你和传动连接起来的惟一接口。此外,传动对象内的任何操作都不会影响到外部对象,例如,档位传动装置不会打开车前灯!因为自动传动被封装起来了,所以任何一家汽车制造商都可以选择一种适合自己的方式来实现它。然而,从司机的观点来看,它们的用途都是一样的。与此相同的观点能被用于编程。封装代码的好处是每个人都知道怎么访问它,但却不必考虑它的内部实现细节,也不必害怕使用不当会带来负面影响。
  Java封装的基本单元是类。尽管类将在以后章节详细介绍。现在仍有必要对它作一下简单的讨论。一个类(class)定义了将被一个对象集共享的结构和行为(数据和代码)。一个给定类的每个对象都包含这个类定义的行为和结构,好像它们是从同一个类的模子中铸造出来似的。因为这个原因,对象有时被看作是类的实例(instances of a class)。所以,类是一种逻辑结构,而对象是真正存在的物理实体。
  当创建一个类时,你要指定组成那个类的代码和数据。从总体上讲,这些元素都被称为该类的成员(members)。具体地说,类定义的数据称为成员变量(member variables)或实例变量(instance variables)。操作数据的代码称为成员方法(member methods)或简称方法(methods)。如果你对C/C++熟悉,可以这样理解:Java程序员所称的方法,就是C/C++程序员所称的函数(function)。在完全用Java编写的程序中,方法定义如何使用成员变量。这意味着一个类的行为和接口是通过方法来定义的,类这些方法对它的实例数据进行操作。
  既然类的目的是封装复杂性,在类的内部就应该有隐藏实现复杂性机制。类中的每个方法或变量都可以被标记为私有(private)或公共(public)。类的公共接口代表类的外部用户需要知道或可以知道的每件事情;私有方法和数据仅能被一个类的成员代码所访问,其他任何不是类的成员的代码都不能访问私有的方法或变量。既然类的私有成员仅能被程序中的其他部分通过该类的公共方法访问,那么你就能保证不希望发生的事情就一定不会发生。当然,公共接口应该小心仔细设计,不要过多暴露类的内部内容(见图1)。
  : 
  
  图1 封装:可用来保护私有数据的公共方法
  
  继承
  继承(Inheritance)是一个对象获得另一个对象的属性的过程。继承很重要,因为它支持了按层分类的概念。如前面提到的,大多数知识都可以按层级(即从上到下)分类管理。例如,尊贵的猎犬是狗类的一部分,狗又是哺乳动物类的一部分,哺乳动物类又是动物类的一部分。如果不使用层级的概念,我们就不得不分别定义每个动物的所有属性。使用了继承,一个对象就只需定义使它在所属类中独一无二的属性即可,因为它可以从它的父类那儿继承所有的通用属性。所以,可以这样说,正是继承机制使一个对象成为一个更具通用类的一个特定实例成为可能。下面让我们更具体地讨论这个过程。
  大多数人都认为世界是由对象组成的,而对象又是按动物、哺乳动物和狗这样的层级结构相互联系的。如果你想以一个抽象的方式描述动物,那么你可以通过大小、智力及骨胳系统的类型等属性进行描述。动物也具有确定的行为,它们也需要进食、呼吸,并且睡觉。这种对属性和行为的描述就是对动物类的定义。
  如果你想描述一个更具体的动物类,比如哺乳动物,它们会有更具体的属性,比如牙齿类型、乳腺类型等。我们说哺乳类动物是动物的子类(subclass),而动物是哺乳动物的超类(superclass)。
  
  :
  
  由于哺乳动物类是需要更加精确定义的动物,所以它可以从动物类继承(inherit)所有的属性。一个深度继承的子类继承了类层级(class hierarchy)中它的每个祖先的所有属性。
  继承性与封装性相互作用。如果一个给定的类封装了一些属性,那么它的任何子类将具有同样的属性,而且还添加了子类自己特有的属性(见图2-2)。这是面向对象的程序在复杂性上呈线性而非几何性增长的一个关键概念。新的子类继承它的所有祖先的所有属性。它不与系统中其余的多数代码产生无法预料的相互作用。
 
Cesium.Ray 知识详解,示例代码 Cesium.Ray 是 CesiumJS 中用于表示三维空间中无限射线的核心类,广泛应用于地理信息系统(GIS)、三维可视化和碰撞检测等场景。射线由起点(origin)和方向向量(direction)定义,数学表达式为 ( P(t) = \text{origin} + t \times \text{direction} )。核心属性包括起点和方向向量,常用方法包括射线与平面的交点计算、根据距离获取射线上的点等。在 Cesium 中,Cesium.Ray 常用于地形碰撞检测、鼠标点选对象和雷达探测模拟等场景 阅读详情

相关推荐

AVL-Excite新手必看:5步搞定发动机阀系系统建模(附B站视频教程)

本文为AVL-Excite新手提供发动机阀系系统建模的5步详细指南,涵盖软件环境搭建、基本结构建立、关键参数设置、仿真分析及常见问题排查。通过清晰的步骤说明和实用技巧,帮助工程师快速掌握建模方法,并附有精选B站视频教程链接,便于实践学习。

weixin_29305313的博客 509

java程序设计语言

http://download.youkuaiyun.com/detail/jake666/2485134 http://download.youkuaiyun.com/detail/hq8411/1196473

白云苍狗 956

Cisco Packet Tracer实战:三层交换机链路聚合配置全流程(附常见错误排查)

本文详细解析了在Cisco Packet Tracer环境中配置三层交换机链路聚合的全流程,包括基础网络设置、LACP协议配置、路由协议集成及高级优化技巧。通过实战案例和常见错误排查指南,帮助网络工程师和CCNA备考学员掌握这一提升带宽利用率和实现链路冗余的核心技术。

grafana6viz的博客 230

JAVA语言概述

JAVA是一门非常纯粹的面向对象编程语言,摈弃了C++难以理解的多继承、指针等概念,因此具有功能强大和简单易用两个特征。是静态面向对象编程语言的代表 JAVA由Sun公司开发。在JAVA语言出现之前,互联网网页实质就像一张纸,没有任何动态的内容。有了JAVA语言之后,浏览器的功能被扩大了,Java可以直接在浏览器里运行,可以直接与远程服务器交互。可以在互联网上像传送电子邮件一样传递程序文件。

u013265795的专栏 4112

SPSS新手教程—两步聚类之结果解读

在《详解SPSS两步聚类之参数设置》一文中,我们已经了解了两步聚类的优点、分析原理,以及参数设置的技巧。 在本节中,会对IBM SPSS Statistics聚类后的结果进行解读,其中会涉及到最终聚类的结果、聚类的质量、变量重要性、聚类特征的解读。 如图1所示,我们先来回顾下本例数据在参数设置面板中的详细设置。 图1:二阶聚类设置 一、数值结果 根据上述参数设置,得到如下的数值分析结果。 首先看到自动聚类结果,如图2所示为聚类的透视表结果,展示了不同聚类数目下的BIC、BIC变化量、BIC变

nekonekoboom的博客 3万+

Python量化交易实战:从零搭建你的第一个多因子选股模型(附完整代码)

本文是一份详细的Python量化交易入门实战指南,手把手教你从零搭建第一个多因子选股模型。内容涵盖环境配置、数据获取、因子挖掘与有效性检验、多因子合成以及完整的策略回测与绩效评估,并附有可直接运行的完整代码,帮助初学者快速掌握量化交易的基本概念与实践流程。

resnet7explorer的博客 936

JAVA基础简述

    JDK是JAVA的开发工具包,包括JRE和JAVA的开发工具    JRE是JAVA的运行环境,包括JVM虚拟机和JAVA运行需要的类库 

jklbtj的博客 365

Direct-LiNGAM算法理解

现在是大数据的时代,数据即是财富。那么如何从数据中发现因果关系呢?这是我们促进我们更加高效利用数据的一个问题?本文介绍了一种方法,可以在符合条件的观察数据中恢复出数据背后的因果结构,帮助我们更好理解数据的产生机制。

小小程序猿的博客 4592

一、Java语言概述

历史 Java主要特征 解释型语言    编译型语言 Java程序的运行机制和JVM Java特点 设置PATH环境变量 编译Java程序 Java程序的基本规则 注释1.历史  Java是使用C++开发出来的。1995年,SUN正式推出了Java编程语言。   Java最初的开发模式分为三类: Java SE(2005之前称为J2SE):进行单机版程序的开发,往往是作为基础平台。 Java ME

Phoenix Nirvana 1622

Android息屏后台任务保活实战:从定时器失效到厂商白名单破解

本文深入探讨了Android应用在息屏后定时任务失效的根源,即系统为省电而触发的休眠机制。文章提供了从传统方案失效分析到实战破解的完整路径,核心在于引导用户将应用加入电池优化白名单并开启自启动权限,从而合法绕过限制。同时,结合WorkManager、AlarmManager等可靠定时方案,实现稳定的后台任务执行。

weixin_28475533的博客 423

AI Agent的知识蒸馏链:多阶段LLM模型优化

随着大语言模型(LLM)规模的不断扩大,如何在保持模型性能的同时提高其部署效率成为关键挑战。本文旨在探讨通过知识蒸馏技术构建多阶段优化链,实现LLM模型的高效压缩和性能优化。研究范围涵盖从基础理论到实际应用的完整知识蒸馏流程,特别关注AI Agent场景下的特殊需求和解决方案。本文首先介绍知识蒸馏的基本概念和背景,然后详细阐述多阶段蒸馏链的核心原理。接着,我们将深入探讨算法实现细节和数学模型,提供完整的代码示例。最后讨论实际应用、工具资源和未来发展方向。

AI大模型应用之禅 351

java语言的概述

一、java 语言的概述 0.阐述计算机的发展历史和什么是编程 计算机的发展历史:庞然大物—&gt;集成管时代—&gt;超集成时代–&gt;微型计算机时代 编程:所谓的编程就是让计算机听人的话 怎样让计算机听话:指令代码 怎样写指令代码:依靠编程语言 常见的编程语言有哪些:c c++ c# php java python 等 1.Java:是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还...

weixin_43199107的博客 795

HINT: High-quality INpainting Transformer with Mask-Aware Encoding and Enhanced Attention 训练自己的数据集

HINT(高质量图像修复变换器)通过创新的掩码感知像素洗牌下采样模块(MPD)和空间激活通道注意力层(SCAL),显著提高了图像修复的质量,尤其在大面积缺失区域的情况下。实验表明,HINT在CelebA、CelebA-HQ、Places2和敦煌数据集上超越了现有的最先进模型,提升了图像的细节和结构一致性。

LJ1147517021的博客 312

第 1 章 Java语言概述答案

第1 章 Java语言概述 一. 选择题 1. B 2.C 3.B 4.A 5.A 6.B 7.A 8.C 9.B 10.B 11.B 10.D 二. 填空题 1. Oak2.面向对象3. java虚拟机4.动态连结5.编译层6. Windows7.垃圾回收8. java 9.半解释型10.跨平台11. java...

qq_40086702的博客 647

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java习题集第一章Java语言概述

第 1 章 Java语言概述(答案见下一期) 一.单项选择题 1.下列不属于java语言鲁棒性特点的是: A.java能检查程序在变异和运行时的错误 B.java 能运行虚拟机实现跨平台 C.java 自己操纵内存减少了内存出错的可能性 D.java 还实现了真数组,避免了覆盖数据的可能 2. java语言的执行模式是: A.全编译型 B.全解释型 C.半编译和半解...

qq_40086702的博客 3337

android 蓝牙通讯demo

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

①Java语言概述

JavaSE学习笔记

own996的博客 204

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java语言概述

java语言概述 1.基础常识 软件:即一系列按照特定顺序组织的计算机数据和指令的集合。分为:系统软件和应用软件。 系统软件:windows,mac os,linux,unix,android,ios,… … 应用软件:word,ppt,画图板,… … 人机交互方式:图形化界面 vs 命令行方式 常用的DOS命令: dir:列出当前目录下的文件以及文件夹 md:创建目录 rd: 删除目录 cd: 进入指定目录 cd…:退回到上一级目录 cd\: 退回到根目录 del: 删除文件 exit:退出DOS命

shuai_举的博客 237

Java编程语言概述

对Java的特点、注释的介绍,以及对第一个Java程序(hello world的简单输出)的实现Java是一门面向对象的编程语言(oop),底层是借助c++实现的,在查看网页源代码时出现类似 “ public native int hashCode();”这样的代码,即在返回类型之前有native修饰并且没有方法体,直接用分号结尾的代码,表示底层调用c++写的动态链接库文件(dll)。Java编写的程序具有可移植性,也叫跨平台性,即一次编译,可在任意平台上运行。主要借助于Java虚拟机(JVM)来实现。

bala_jiang的博客 1237

第二讲 Java语言概述

计算机语言 在了解Java语言概述之前,我们得知道什么是计算机语言。语言是人类进行沟通交流的各种表达符号,方便人与人之间进行沟通与信息交换。那什么是计算机语言呢? 人与计算机之间进行信息交流沟通的一种特殊语言。 计算机语言中也有字符、符号等等。 常见的计算机语言如C、C++、C#、Java等。 计算机软件都是用各种计算机语言编写的。最底层的叫机器语言,它由一些0和1组成,可以被某种电脑直...

李阿昀的博客 2844
上一篇: JAVA的反编译
下一篇: Java新手必读
CodingMouse
博客等级 码龄19年 82粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值