JAVA(一)

news2024/11/27 18:31:53

我的第一个JAVA程序

以下我们通过一个简单的实例来展示Java编程,创建文件HelloWorld.java(文件名需与类名一致),代码如下

实例

public class HelloWorld{
    public static void main(String[] args){
    System.out.println('Hello  World')
}
}

注:Srting args[] 与Srting[] args 都可执行,但推荐使用String[] args, 这样可以避免歧义和误读

运行以上实例,输出结果如下:

javac HelloWorld.java
java  HelloWorld

Hello World

执行命令解析:

以上我们使用了两个命令javac和java

javac后面跟着的是java文件的文件名,例如HelloWorld.java。 该命令用于将java源文件编译为class字节码文件,如: javac.HelloWorld.java。

运行javac命令后,如果成功编译没有错误的话,会出现一个HelloWorld.class的文件。

java后面跟着的是java文件中的类名,例如HelloWorld就是类名,如java HelloWorld。

注意:java命令后面不要加.class

JAVA简介

Java是由SUN公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。

Java基础语法

一个Java程序可可以认为是一系列对象的集合,而这些对象通过彼此的方法来协同工作。下面简要介绍下类 ,对象,方法和实例变量的概念。

对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色,名字,品种,行为等

类:类是一个模板,它描述一类对象的行为和状态

方法:方法就是行为,一个类可以有很多方法,逻辑运算,数据修改以及所有动作都是在方法中完成的

实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

 下面将逐步介绍如何保存,编译以及运行这个程序:

打开代码编辑器,把上面的代码添加进去;

把文件名保存为:HelloWorld.java

打开cmd命令窗口,进入目标文件所在的位置,假设是C:\

在命令行窗口输入javac.HelloWorld.java 按下回车编译代码。如果代码没有错误,cmd命令提示符会进入下一行(假设环境变量都设置好了)。

在键输入 java HelloWorld按下回车就可以运行程序了

你将会在窗口看到 Hello World

基本语法

编写Jav程序时,应该注意一下几点:

大小写敏感:Java大小写敏感的,这就意味着标识符Hello与hello是不同的。

类名:对于所有的类名来说, 类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如MyFirst

方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。

源文件名:源文件名必须和类名相同。当文件保存的时候,你应该使用类名作为文件名保存(切记Java是大小写铭感的),文件名的后缀为.java。(如果文件名和类名不相同则会导致编译错误)。

主方法入口: 所有的Java程序由 public static void main (Srting [] args) 方法开始执行

JAVA标识符

Java所有的组成部分都需要名字。类名,变量名以及方法名都称为标识符。

关于Java标识符,有以下几点注意:

  • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
  • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
  • 关键字不能用作标识符
  • 标识符是大小写敏感的
  • 合法标识符举例:age、$salary、_value、__1_value
  • 非法标识符举例:123abc、-salary

Java修饰符

像其他语言一样,Java可以使用修饰符来修饰类中方法和属性,主要有两类修饰符:

访问控制修饰符:default,public, protected,private

非访问控制修饰符: final, abstract,static,synchroized

Java变量

Java中主要有如下几种类型的变量

局部变量

类变量(静态变量)

成员变量(非静态变量)

Java数组

数组是储存在堆上的对象,可以保存多个同类型变量。在后面的章节中,我们将会学到如何申明,构造以及初始化一个数组。

Java枚举

Java 5.0引入了枚举,枚举限制变量只能是预先设定好的值。使用枚举可以减少代码中的bug。

例如,我们为果汁店设计一个程序,它将限制果汁为小杯、中杯、大杯。这就意味着它不允许顾客点除了这三种尺寸外的果汁。

class FreshJuice {
   enum FreshJuiceSize{ SMALL, MEDIUM , LARGE }
   FreshJuiceSize size;
}
 
public class FreshJuiceTest {
   public static void main(String[] args){
      FreshJuice juice = new FreshJuice();
      juice.size = FreshJuice.FreshJuiceSize.MEDIUM  ;
   }
}

Java关键字

下面列出了Java关键字。这些保留字不能用于常量,变量,和任何标识符的名称。

 

Java注释

public class HelloWorld {
   /* 这是第一个Java程序
    * 它将输出 Hello World
    * 这是一个多行注释的示例
    */
    public static void main(String[] args){
       // 这是单行注释的示例
       /* 这个也是单行注释的示例 */
       System.out.println("Hello World"); 
    }
}

Java空行

空白行或者有注释的行,Java 编译器都会忽略掉。

继承

在 Java 中,一个类可以由其他类派生。如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。

利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类(super class),派生类称为子类(sub class)。

接口

在Java中,接口可理解为对象间相互通信的协议,接口在继承中扮演着很重要的角色。

接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类。

Java 对象和类

Java作为一种面向对象语言,支持以下基本概念

多态

继承

封装

抽象

对象

 

实例

方法

重载

本节我们重点研究对象和类的概念

对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为, 例如,一条狗是一个对象,它的状态有: 颜色,名字,品种,摇尾巴,叫,吃等。

类: 类是一个模板,它描述一类对象的行为和状态

创建对象

对象是根据类创建的。在Java中,使用关键字new来创建一个新的对象。创建对象需要以下三步:

public class Puppy{
   public Puppy(String name){
      //这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
   public static void main(String[] args){
      // 下面的语句将创建一个Puppy对象
      Puppy myPuppy = new Puppy( "tommy" );
   }
}

编译并运行上面的程序,会打印出下面的结果:

小狗的名字是 : tommy
 

访问实例变量和方法

/* 实例化对象 */
Object referenceVariable = new Constructor();
/* 访问类中的变量 */
referenceVariable.variableName;
/* 访问类中的方法 */
referenceVariable.methodName();

实例

public class Puppy{
   int puppyAge;
   public Puppy(String name){
      // 这个构造器仅有一个参数:name
      System.out.println("小狗的名字是 : " + name ); 
   }
 
   public void setAge( int age ){
       puppyAge = age;
   }
 
   public int getAge( ){
       System.out.println("小狗的年龄为 : " + puppyAge ); 
       return puppyAge;
   }
 
   public static void main(String[] args){
      /* 创建对象 */
      Puppy myPuppy = new Puppy( "tommy" );
      /* 通过方法来设定age */
      myPuppy.setAge( 2 );
      /* 调用另一个方法获取age */
      myPuppy.getAge( );
      /*你也可以像下面这样访问成员变量 */
      System.out.println("变量值 : " + myPuppy.puppyAge ); 
   }
}

编译并运行上面的程序,产生如下结果:

小狗的名字是 : tommy
小狗的年龄为 : 2
变量值 : 2
 

源文件声明规则

在本节的最后部分,我们将学习源文件的声明规则。当一个源文件中定义多个类,并且还有import和package语句时,要特别注意这些规则。

一个源文件中只能有一个public类

一个源文件可以有多个非public类 

源文件的名称应该和public的类名保持一致。例如:源文件中public的类名是Employee,那么源文件名为Employee.java。

类有若干种访问级别,并且类也分不同的类型:抽象类和 final 类等。这些将在访问控制章节介绍。

除了上面提到的几种类型,Java 还有一些特殊的类,如:内部类、匿名类

  • 如果一个类定义在某个包中,那么 package 语句应该在源文件的首行。
  • 如果源文件包含 import 语句,那么应该放在 package 语句和类定义之间。如果没有 package 语句,那么 import 语句应该在源文件中最前面。
  • import 语句和 package 语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

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

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

相关文章

[NLP]LLM 训练时GPU显存耗用量估计

以LLM中最常见的Adam fp16混合精度训练为例,分析其显存占用有以下四个部分: GPT-2含有1.5B个参数,如果用fp16格式,只需要1.5G*2Byte3GB显存, 但是模型状态实际上需要耗费1.5B*1624GB. 比如说有一个模型参数量是1M,在…

RCNA——VLAN进阶划分

一,实验背景 有时,公司可能会非常大,因为业务需求的因素,所以每个部门在每一个楼层都有相应的办公室,因此想要实现他们之间的互连互通, 可以在每个楼层部署一个楼层交换机,实现各个楼层相同部门…

堆的实现以及应用

💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大家三连关注&…

IntelliJ IDEA和Android studio怎么去掉usage和作者提示

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载 下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ 提取码&#xf…

考虑微网新能源经济消纳的共享储能优化配置(Matlab代码实现

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

关于ArrayList的十三连问

文章目录 一、底层存储结构是什么二、初始容量三、构造方法四、扩容原理五、读写速度比较六、克隆为深克隆还是浅克隆七、多线程环境下是否安全八、增强遍历时添加或删除元素会发生什么事情九、为什么数组被transient修饰十、通过subList()获得的集合能否转为ArrayList十一、使…

基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

【python】一文了解Python爬虫 | 文末送书

目录 引言 1. 爬虫基础知识 1.1 什么是爬虫 1.2 HTTP协议 1.2.1 HTTP请求方法 1.GET请求 1.2.2 请求头常见字段 1.2.3 响应状态码 1.3 HTML解析 1.3.1 Beautiful Soup 解析库 1.3.2 XPath xpath解析原理: xpath 表达式 2. 爬虫进阶技巧 2.1 防止被反爬虫 2.1.1 …

信息论基础知识

注意:本文只针对离散随机变量做出探讨,连续随机变量的情况不适用于本文探讨的内容! (一)自信息 1. 自信息 I ( x ) − l o g n P ( x ) \color{blue}I(x) - log_{n}{P(x)} I(x)−logn​P(x) 注意: 若n …

用ChatGPT和六顶帽思考法帮助自己更好地决策和解决问题

当我们在解决复杂问题时,我们常常陷入单一视角的状态。创造性思维领域的先驱爱德华德博诺,提出了六顶帽思考法[1],这意味着我们可以从六个不同的视角来思考一个问题,以实现高水平决策和解决问题。 每一顶“帽子”代表不同的视角。…

【Matlab】PSO优化(单隐层)BP神经网络算法

上一篇博客介绍了BP-GA:BP神经网络遗传算法(BP-GA)函数极值寻优——非线性函数求极值,本篇博客将介绍用PSO(粒子群优化算法)优化BP神经网络。 1.优化思路 BP神经网络的隐藏节点通常由重复的前向传递和反向传播的方式来决定&#…

UGUI源码深度剖析

源码下载后 直接嵌入工程,删除引擎extension里的; 自制UI,在一个空场景中显示一个图片,当鼠标点击图片,执行操作。 gameobject : mesh meshfilter meshrender maintexture meshcollider camera ray

基于SSM的智能商城购物系统

基于SSM的智能商城购物系统 项目简介项目获取开发环境项目技术运行截图 项目简介 该智能商城系统主要实现两大功能模块:前台管理和后台管理 前台管理包括五大模块:用户登录注册、商品信息、购物车信息、个人信息管理、下单与订单管理、订单物流设置。 (1)用户登录注册模块:该功…

【Python机器学习】实验10 支持向量机

文章目录 支持向量机实例1 线性可分的支持向量机1.1 数据读取1.2 准备训练数据1.3 实例化线性支持向量机1.4 可视化分析 实例2 核支持向量机2.1 读取数据集2.2 定义高斯核函数2.3 创建非线性的支持向量机2.4 可视化样本类别 实例3 如何选择最优的C和gamma3.1 读取数据3.2 利用数…

大数据Flink(六十一):Flink流处理程序流程和项目准备

文章目录 Flink流处理程序流程和项目准备 一、Flink流处理程序的一般流程

使用jasypt对Spring Boot配置文件中的配置项加密

在Spring Boot中,有很多口令需要加密,如数据库连接密码、访问第三方接口的Token等。常见的方法就是用jasypt对口令进行加密。 实际上,jasypt可以对配置文件中任意配置项的值进行加密,不局限于对密码的加密。 1.在pom.xml中添加ja…

21 | 朝阳医院数据分析

朝阳医院2018年销售数据为例,目的是了解朝阳医院在2018年里的销售情况,通过对朝阳区医院的药品销售数据的分析,了解朝阳医院的患者的月均消费次数,月均消费金额、客单价以及消费趋势、需求量前几位的药品等。 import numpy as np from pandas import Series,DataFrame impo…

友善之臂NanoPi NEO利用fbtft驱动点亮1.69寸ST7789V2屏幕

屏幕介绍 本文以中景园1.69寸LCD,驱动芯片ST7789V2该款屏幕示例,屏幕的分辨率为240*280 屏幕引脚说明 NanoPi NEO IO介绍 屏幕与板子的IO连接关系 屏幕NanoPi NEOGNDGNDVCC3.3VSCLPC2SDAPC0RESPG11DCPA1CSPC3BLKPA0 下载交叉编译器和linux内核源码并按教…

c语言——完数的计算

完数即所有因子之和等于其本身值 列入,28124714,28所有的因子为1,2,4,7,14 而这五个因子之和恰好也是28. //完数的计算 /*完数即所有因子之和等于其本身值 列入,28124714,28所有的…

LeetCode700. 二叉搜索树中的搜索

700. 二叉搜索树中的搜索 文章目录 [700. 二叉搜索树中的搜索](https://leetcode.cn/problems/search-in-a-binary-search-tree/)一、题目二、题解方法一:迭代方法二:递归 带main函数测试用例 一、题目 给定二叉搜索树(BST)的根节…