Java基础-基础语法

1、概述

        一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

2、第一个Java程序

public class HelloWorld {/* 第一个Java程序* 它将输出字符串 Hello World*/public static void main(String[] args) {System.out.println("Hello World"); // 输出 Hello World}
}

 在这段代码中:

class就是类的关键字;

HelloWorld就是类名;

main就是方法名;

main后面的括号中的内容(String[] args)就是方法的参数;

大括号中的内容,就是方法体,也就是要做什么。

3、注释

        Java 注释是一种在 Java 程序中用于提供代码功能说明的文本。

        注释不会被编译器包含在最终的可执行程序中,因此不会影响程序的运行。

        注释是良好的编程习惯,它们帮助程序员更容易地理解代码的用途和功能,并且在团队协作中非常有用。

        Java 注释主要有三种类型:

  • 单行注释
  • 多行注释
  • 文档注释

3.1、单行注释

        单行注释以双斜杠 // 开始:

实例

        // 这是一个单行注释 int x = 10; // 初始化一个变量x为10

3.2、多行注释

        多行注释以 /*开始,以 */结束:

实例

        /* 这是一个多行注释 可以用来注释多行代码 */ int y = 20; // 初始化一个变量y为20

3.3、文档注释

                文档注释以 /** 开始,以 */ 结束,通常出现在类、方法、字段等的声明前面,用于生成代码文档,这种注释可以被工具提取并生成 API 文档,如 JavaDoc。

实例

        /** * 这是一个文档注释示例 * 它通常包含有关类、方法或字段的详细信息 */ public class MyClass { // 类的成员和方法 }

        文档注释的格式通常包含一些特定的标签,如 @param 用于描述方法参数,@return 用于描述返回值,@throws 用于描述可能抛出的异常等等,这些标签有助于生成清晰的API文档,以便其他开发者能够更好地理解和使用你的代码。

4、对象与类

4.1、对象

        此处的对象不是女朋友,是一个事实存在的事物,有对应的属性和行为,比如一个人,人的属性有:姓名、性别、年龄等,行为有:吃、穿、住、行、等。

4.2、类

        在Java中,类就是一个模板,它描述一类对象的行为和状态。比如男人,男人就是一类属性中的性别为男的人。

5、面向对象

5.1、概念

        面向对象是一种程序设计思想,就是把现实中的事务都抽象成为程序设计中的“对象”,其基本思想是一切皆对象,是一种“自下而上”的设计语言,先设计组件,再完成拼装。

现在很多语言都是面向对象的,如Java、C++、C#、Python等。

5.2、面向对象的优缺点

        优点: 1、提升程序的解耦合程度,进而增强程序的可扩展性

        缺点: 1、设计复杂 2、容易过度设计

5.3三大主要特征(理解)

封装、继承、多态

5.3.1、封装

封装主要有两种含义:

        1、把对象的属性和行为看成一个密不可分的整体,将这两者“封装”在一个不可分割的独立单元(即对象)中;

        2、另一层含义指“信息隐藏”,把不需要让外界知道的信息隐藏起来,有些对象的属性及行为允许外界用户知道或使用,但不允许更改,而另一些属性或行为,则不允许外界知晓,或只允许使用对象的功能,而尽可能隐藏对象的功能实现细节。

封装的优点

  • 良好的封装能够减少耦合,符合程序设计追求“高内聚,低耦合”。
  • 类内部的结构可以自由修改。
  • 可以对成员变量进行更精确的控制。
  • 隐藏信息实现细节。

5.3.2、继承

        继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

继承的好处:

(1)提高类代码的复用性。

(2)提高了代码的维护性。

(3)使得类和类产生了关系,是多态的前提(它也是继承的一个弊端,类的耦合性提高了。

继承的特性

  • 子类拥有父类非 private 的属性、方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法,即重写父类方法。
  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 继承可以使用 extends 和 implements 这两个关键字来实现继承,而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两个关键字,则默认继承object(这个类在 java.lang 包中,所以不需要 import)祖先类。
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

5.3.3、多态

        所谓多态,就是指一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。

        这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。

        最常见的多态就是将子类传入父类参数中,当运行时调用父类方法时,通过传入的子类决定具体的内部结构或行为。

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

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

相关文章

Java之“数字困境”:资产管理项目中的Bug追踪与启示

目录 1 前言2 问题的发现3 调试的开始4 深入调试5 调试心得与反思6 结语 1 前言 在程序员的日常工作中,我们时常面对各种令人头疼的问题,其中最令人崩溃的瞬间之一,就是当我们花费大量时间追踪一个看似复杂的bug,最终发现问题的根…

蒙特卡洛树搜索(Monte Carlo Tree Search)揭秘

一. 什么是蒙特卡洛树搜索 蒙特卡洛树搜索(MCTS)是一种启发式搜索算法,一般用在棋牌游戏中,如围棋、西洋棋、象棋、黑白棋、德州扑克等。MCTS与人工神经网络结合,可发挥巨大的作用,典型的例子是2016年的AlphaGo,以4:1…

JAVA集合学习

一、结构 List和Set继承了Collection接口,Collection继承了Iterable Object类是所有类的根类,包括集合类,集合类中的元素通常是对象,继承了Object类中的一些基本方法,例如toString()、equals()、hashCode()。 Collect…

实战Leetcode(五)

Practice makes perfect! 实战一: 思路:我们要用复制的节点来组成一个新的链表,而原链表的节点随机指向其中一个节点,我们首先给每一个节点都复制并且插入到原来节点的后面,然后用复制的节点指向我们原来节…

物理问题中常见的分析问题----什么样的函数性质较好

物理问题中常见的积分符号位置交换问题 重极限与累次极限 高数下的定义 累次极限:求极限时需要遵循一定的顺序重极限:任意方向趋于的极限 两者之间的关系: 两者没啥关系存在累次极限存在而不相等的函数...... 求和符号与积分符号互换--逐项积…

RK3568笔记五:基于Yolov5的训练及部署

若该文为原创文章,转载请注明原文出处。 一. 部署概述 环境:Ubuntu20.04、python3.8 芯片:RK3568 芯片系统:buildroot 开发板:ATK-DLRK3568 开发主要参考文档:《Rockchip_Quick_Start_RKNN_Toolkit2_C…

专题知识点-二叉树-(非常有意义的一篇文章)

这里写目录标题 二叉树的基础知识知识点一(二叉树性质 )树与二叉树的相互转换二叉树的遍历层次优先遍历树的深度和广度优先遍历中序线索二叉树二叉树相关遍历代码顺序存储和链式存储二叉树的遍历二叉树的相关例题左右两边表达式求值求树的深度找数找第k个数二叉树非递归遍历代码…

C++ builder 常见问题汇总

1、CB静态编译设置 2、CB10.3设置经典编译器(用于解决10.3弹出代码提示慢) 3、CBuilder生成Release版本 : project->Options->CCompiler->Build Configuration 选择 Release project->Options->CLinker中取消Use dynamic RTL…

简单实现,在nodejs中简单使用kafka

什么是 Kafka Kafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。 Kafka 的基本术语 消息:Kafka 中的…

深入理解 Django 单元测试

概要 在现代软件开发流程中,单元测试是确保代码质量和可维护性的关键组成部分。对于使用 Django 框架的项目来说,Django 提供了一套强大的测试工具来帮助开发者编写和运行单元测试。本文将深入探讨 Django 中的单元测试,包括测试原理、编写测…

vue3 ref 与shallowRef reactive与shallowReactive

ref 给数据添加响应式,基本类型采用object.defineProperty进行数据劫持,对象类型是借助reactive 实现响应式,采用proxy 实现数据劫持,利用reflect进行源数据的操作 let country ref({count:20,names:[河南,山东,陕西],objs:{key…

19C进入数据库出现问号

问题情况如图所示: 解决方法: su - oracle echo "NLS_LANGAMERICAN_AMERICA.ZHS16GBK;export NLS_LANG" >> ~/.bash_profilesource ~/.bash_profileofile

《网络协议》05. 网络通信安全 · 密码技术

title: 《网络协议》05. 网络通信安全 密码技术 date: 2022-09-10 15:16:15 updated: 2023-11-12 07:03:52 categories: 学习记录:网络协议 excerpt: 网络通信安全(ARP 欺骗,DoS & DDoS,SYN 洪水攻击,LAND 攻击&a…

activiti7审批驳回,控制变量无法覆盖,导致无限循环驳回,流程无法结束

项目开发过程中使用工作流,因此考虑使用activiti7做完工作流引擎。项目开发过程中,发现流程驳回时,再次执行流程,控制变量无法覆盖,导致无限循环驳回,流程无法结束。流程图如下图所示: 驳回控制…

数据结构 栈(C语言实现)

目录 1.栈的概念及结构2.栈的代码实现 1.栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In F…

【JavaEE】Servlet API 详解(HttpServletRequest类)

二、HttpServletRequest Tomcat 通过 Socket API 读取 HTTP 请求(字符串), 并且按照 HTTP 协议的格式把字符串解析成 HttpServletRequest 对象(内容和HTTP请求报文一样) 1.1 HttpServletRequest核心方法 1.2 方法演示 WebServlet("/showRequest&…

线性代数理解笔记

一.向量引入: 向量:只由大小和方向决定,不由位置决定。 二.向量加减法 向量的加法是首尾相连,减法是尾尾相连。 而向量v向量w为平行四边形主对角线。 向量v-向量w为平行四边形副对角线。 2.向量内积点乘(内积) 内积…

谈谈如何沟通

序言 如果你是对的,就要试着温和地、技巧地让对方同意你;如果你错了,就要迅速热忱地承认。这比为自己争辩有效和有趣的多。——卡耐基【美】 通过上篇文章谈谈如何写作(一),我们了解了如何表达的一些基本的…

国际阿里云:云服务器灾备方案!!!

保障企业业务稳定、IT系统功能正常、数据安全十分重要,可以同时保障数据备份与系统、应用容灾的灾备解决方案应势而生,且发展迅速。ECS可使用快照、镜像进行备份。 灾备设计 快照备份 阿里云ECS可使用快照进行系统盘、数据盘的备份。目前,阿…