java:基本程序设计结构

深入解读Java代码组织中的package包结构 主要介绍了Java代码组织中的package包结构,是Java入门学习中的基础知识,需要的朋友可以参考下 立即下载

一个简单的 JAVA 应用程序

public class FirstSample
{
   public static void main(String[] args)
   {
      System.out.println("We will not use 'Hello, World!'");
   }
}
  • 关键字public 称为访问修饰符( access modifier ), 这些修饰符用于控制程序的其他部分对这段代码的访问级別
  • 关键字class 表明Java 程序中的全部内容都包含在类中。这里, 只需要将类作为一个加载程序逻辑的容器, 程序逻辑定义了应用程序的行为
  • 关键字class 后面紧跟类名。Java 中定义类名的规则很宽松。名字必须以字母开头,后面可以跟字母和数字的任意组合。长度基本上没有限制。但是不能使用Java 保留字(例如,public 或class ) 作为类名
  • 标准的命名规范为(类名FirstSample 就遵循了这个规范):类名是以大写字母开头的名词。如果名字由多个单词组成, 每个单词的第一个字母都应该大写(这种在一个单词中间使用大写字母的方式称为骆驼命名法。以其自身为例, 应该写成CamelCase)。
  • 源代码的文件名必须与公共类的名字相同,并用.java 作为扩展名。因此,存储这段源代码的文件名必须为FirstSample.java ( 再次提醒大家注意,大小写是非常重要的, 千万不能写成firstsample.java)
  • 如果已经正确地命名了这个文件, 并且源代码中没有任何录人错误, 在编译这段源代码之后就会得到一个包含这个类字节码的文件。Java 编译器将字节码文件自动地命名为 FirstSample.class, 并与源文件存储在同一个目录下。最后, 使用下面这行命令运行这个程序:
    java FirstSample
  • (请记住,不要添加.class 扩展名。)程序执行之后, 控制台上将会显示“We will not use ‘Hello, World!’”。
  • 当使用
    java ClassName
    运行已编译的程序时,Java 虚拟机将从指定类中的main 方法开始执行(这里的“ 方法”就是Java 中所说的“ 函数”), 因此为了代码能够执行, 在类的源文件中必须包含一个main方法。当然,也可以将用户自定义的方法添加到类中,并且在main 方法中调用它们

数据类型

在Java 中, 共有8种基本类型( primitive type ), 其中有4 种整型、2 种浮点类型、1 种用于表示Unicode 编码的字符单元的字符类型char 和1 种用于表示真值的boolean 类型。

整型

整型用于表示没有小数部分的数值, 它允许是负数。Java 提供了4 种整型
在这里插入图片描述

整型的范围与运行Java 代码的机器无关。这就解决了软件从一个平台移植到另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问题

浮点型

浮点类型用于表示有小数部分的数值。在Java 中有两种浮点类型
在这里插入图片描述

  • double 表示这种类型的数值精度是float 类型的两倍(有人称之为双精度数值)。绝大部分应用程序都采用double 类型。在很多情况下,float 类型的精度很难满足需求。实际上,只有很少的情况适合使用float 类型,例如,需要单精度数据的库, 或者需要存储大量数据。
  • float 类型的数值有一个后缀F 或f ( 例如, 3.14F)。没有后缀F 的浮点数值(如3.14 ) 默认为double 类型。当然,也可以在浮点数值后面添加后缀D 或d ( 例如,3.14D)。

char 类型

char 类型原本用于表示单个字符。不过, 现在情况已经有所变化。如今, 有些Unicode字符可以用一个char 值描述, 另外一些Unicode 字符则需要两个char 值。
char 类型的字面量值要用单引号括起来。例如:‘A’ 是编码值为65 所对应的字符常量。它与 “A” 不同,“A” 是包含一个字符A 的字符串, char 类型的值可以表示为十六进制值,其范围从 \u0000 到\Uffff。例如:\u2122 表示注册符号, \u03C0 表示圆周率。

强烈建议不要在程序中使用char 类型, 除非确实需要处理UTF-16 代码单元。最好将字符串作为抽象数据类型处理

boolean 类型

boolean ( 布尔)类型有两个值: false 和true, 用来判定逻辑条件整型值和布尔值之间不能进行相互转换。

常量

在Java 中, 利用关键字final 指示常量。

public class Constants
{
	public static void main(String[] args)
	{
		final double CM_PER_INCH = 2.54;
		double paperWidth = 8.5;
		double paperHeight = 11;
		System,out.println("Paper size in centimeters: "
+ paperWidth * CM PER INCH + " by " + paperHeight * CM.PER.INCH);
	}
}

关键字final 表示这个变量只能被赋值一次。一旦被赋值之后, 就不能够再更改了。习惯上,常量名使用全大写。

在Java 中,经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为类常量。可以使用关键字static final 设置一个类常量。下面是使用类常量的示例:

public cl ass Constants〗
{
	public static final double CM_PER_INCH = 2.54;
	public static void main(Stringn args)
	{
		double paperWidth = 8.5;
		double paperHeight = 11;
		System.out.println("Paper size in centimeters: "
+ paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH) ;
	}
}

const 是Java 保留的关键字, 但目前并没有使用。在Java 中, 必须使用final定义常量。

字符串

Java 没有内置的字符串类型, 而是在标准Java 类库中提供了一个预定义类, 很自然地叫做String。每个用双引号括起来的字符串都是String 类的一个实例:

String e = ""; // an empty string
String greeting = "Hello";

String 类没有提供用于修改字符串的方法。由于不能修改Java 字符串中的字符, 所以在Java 文档中将String 类对象称为不可变字符串

输入输出

要想通过控制台进行输人,首先需要构造一个Scanner 对象,并与“ 标准输人流” System.in 关联。

Scanner in = new Scanner(System.in);

现在, 就可以使用Scanner 类的各种方法实现输入操作了。例如, nextLine 方法将输入一行。

System.out.print("What is your name? ");
String name = in.nextLine();

在这里, 使用nextLine 方法是因为在输人行中有可能包含空格。要想读取一个单词(以空白符作为分隔符),就调用

String firstName = in.next();

要想读取一个整数, 就调用nextlnt 方法。

System.out.print("How old are you? ");
int age = in.nextInt();

与此类似,要想读取下一个浮点数, 就调用nextDouble 方法。
 
Scanner 类定义在java.util 包中。当使用的类不是定义在基本java.lang 包中时, 一定要使用import 指示字将相应的包加载进来。

import java.util.*;

/**
 * This program demonstrates console input.
 * @version 1.10 2004-02-10
 * @author Cay Horstmann
 */
public class InputTest
{
   public static void main(String[] args)
   {
      Scanner in = new Scanner(System.in);

      // get first input
      System.out.print("What is your name? ");
      String name = in.nextLine();

      // get second input
      System.out.print("How old are you? ");
      int age = in.nextInt();

      // display output on console
      System.out.println("Hello, " + name + ". Next year, you'll be " + (age + 1));
   }
}

因为输入是可见的, 所以Scanner 类不适用于从控制台读取密码。Java SE 6 特别引入了Console 类实现这个目的。要想读取一个密码, 可以采用下列代码:
Console cons = System.console();
String username = cons.readLine("User name: ");
char[] passwd =cons.readPassword("Password:");
为了安全起见, 返回的密码存放在一维字符数组中, 而不是字符串中。在对密码进行处理之后, 应该马上用一个填充值覆盖数组元素
 
采用Console 对象处理输入不如采用Scanner 方便。每次只能读取一行输入, 而没有能够读取一个单词或一个数值的方法。

控制流程

Java 的设计者将 goto 作为保留字, 但实际上并没有打算在语言中使用它。通常,使用 goto 语句被认为是一种拙劣的程序设计风格。当然,也有一些程序员认为反对 goto 的呼声似乎有些过分(例如, Donald Knuth 就曾编著过一篇名为《Structured Programming with goto statements》的著名文章)。 这篇文章说:无限制地使用goto 语句确实是导致错误的根源,但在有些情况下, 偶尔使用goto 跳出循环还是有益处的。Java 设计者同意这种看法, 甚至在Java 语言中增加了一条带标签的 break, 以此来支持这种程序设计风格。
 
看一下不带标签的break 语句。与用于退出switch 语句的break 语句一样, 它也可以用于退出循环语句。例如,

while (years <= 100)
{
	balance += payment ;
	double interest = balance * interestRate / 100;
	balance += interest;
	if (balance >= goal ) break;
	years++ ;
}

Java 还提供了一种带标签的 break 语句, 用于跳出多重嵌套的循环语句。有时候,在嵌套很深的循环语句中会发生一些不可预料的事情。此时可能更加希望跳到嵌套的所有循环语句之外。通过添加一些额外的条件判断实现各层循环的检测很不方便。这里有一个示例说明了break 语句的工作状态。请注意,标签必须放在希望跳出的最外层循环之前, 并且必须紧跟一个冒号。

Scanner in = new Scanner(System.in);
int n;
read_data:
while (. . .) // this loop statement is tagged with the label
{
	for (. . .) // this inner loop is not labeled
	{
		Systen.out.print("Enter a number >= 0: ");
		n = in.nextlntO;
		if (n < 0) // should never happen-can’t go on
			break read.data;
			// break out of readjata loop
	}
}
// this statement is executed immediately after the labeled break
if (n < 0) // check for bad situation
{
	// deal with bad situation
}
else
{
	// carry out normal processing
}

大数值

如果基本的整数和浮点数精度不能够满足需求, 那么可以使用 java.math 包中的两个很有用的类: Biglnteger 和 BigDecimaL 这两个类可以处理包含任意长度数字序列的数值。Biglnteger 类实现了任意精度的整数运算, BigDecimal 实现了任意精度的浮点数运算。
 
使用静态的valueOf 方法可以将普通的数值转换为大数值:

Biglnteger a = Biglnteger.valueOf(100) ;

遗憾的是,不能使用人们熟悉的算术运算符(如:+ 和*) 处理大数值。而需要使用大数值类中的add 和multiply 方法。

Biglnteger c = a.add(b) ; // c = a + b
Biglnteger d = c.nul ti pi y(b.add(Biglnteger.val ueOf(2))); // d = c * (b + 2)
TPS563201DDCR电路翻车实录:从原理图到PCB,我踩过的5个坑及补救方法 本文详细记录了使用TPS563201DDCR电源芯片设计电路时遇到的5个常见问题及解决方案,包括EN引脚配置、BST电容选型、反馈网络设计、PCB布局优化以及散热处理。通过实际案例和数据分析,帮助工程师避免类似错误,提升电源模块的可靠性和效率。 阅读详情

相关推荐

【雷达信号处理实战】从原理到代码:脉冲多普勒(PD)处理全流程解析与MATLAB仿真

本文深入解析了脉冲多普勒(PD)雷达信号处理的核心原理与全流程。通过剖析多普勒效应、脉冲压缩与慢时间FFT等关键技术,并结合详细的MATLAB仿真代码,手把手指导如何从信号建模、回波模拟到最终生成距离-多普勒谱,实现运动目标的精确测距与测速,直观展示了相参积累带来的显著性能增益。

pca5navigator的博客 954

【Java】基本程序设计结构(二)

上一篇我们详细介绍了Java基本程序设计结构中前半部分,

2301_80827065的博客 771

NX/UG二次开发—CAM—设置程序修剪边界Boundary

最近做了一个设置CAM程序边界的小工具,分享一下经验(官方的代码在文章末尾处),以下均以修剪边界曲线为例。 以下为官方提供的源码: /***************************** Include Files **********************************/ #include <stdlib.h> #include <uf.h> #include <uf_obj.h> #include <uf_object_type

门前大桥下,游过一群鸭,快来看一看,原来是C++ 3740

JAVA项目建模之包目录结构

对于API,分为2种,一是提供API给外部调用,二是调用外部API,我们通常会封装好这2部分内容,针对提供给外部调用的接口,命名为。调用外部接口的内容,命名为。

诗人不写诗 305

win11重装系统简易教程-小白也可以上手!

本文介绍一下win11系统重装的各个步骤,也作为记录供自己后面查看。附上我之前参考的一位知乎大神写的重装win10系统文章的地址本文用到的工具全部是,不需要下载第三方镜像文件(不是说这个不好,只是第三方的软件或镜像文件网上非常多,琳琅满目,小白需要筛选甄别,直接用官方的就比较省心,大神请自便~)

Sddqa的博客 1万+

从零构建虚幻引擎体积云:参数调优与性能平衡的艺术

本文深入探讨了在虚幻引擎中构建逼真体积云系统的关键技术,包括Sky Atmosphere、Volumetric Cloud和Exponential Height Fog三大核心组件的协同工作。重点解析了体积云材质的高级控制、光照阴影的物理模拟以及性能优化策略,帮助开发者在视觉效果与性能之间找到最佳平衡点。

weixin_29012677的博客 939

第二章 Java结构化程序设计

1)标识符( Identifier):是对变量、类、方法、标号和其它各种用户自定义对象的命名。汉字也可以作为标识符(但书写不便,不推荐): int 年龄 = 20;2)Java对标识符的规范没有规范的命名不是一个科班出身的软件开发者应有的行为3)关键字(reserved word、keyword)

cllstc的博客 1402

OpenClaw插件开发指南:扩展AI智能体的无限可能

OpenClaw插件开发指南介绍了如何扩展AI智能体的功能。该插件系统支持多种类型(功能、集成、工具、界面、工作流插件),具有模块化、低耦合等优势。开发环境需要安装SDK和工具包,通过plugin.json配置插件信息,主文件实现核心功能。API提供智能体管理、任务执行等接口,示例演示了文本处理插件的创建流程。开发者可基于此框架灵活扩展OpenClaw的能力。

一键难忘的博客 561

Java项目中包的创建方法

Java项目中报的使用及项目结构

u010804417的博客 2528

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

【WorkBuddy专栏68】HY3绕路部署vsDS4直击根因——一次真实踩坑揭露两个AI模型的推理差距

AI人人懂 566

45、使用 sqlread 函数将数据从数据库表导入 MATLAB

本文详细介绍了如何使用 MATLAB 中的 `sqlread` 函数从不同类型的数据库(如 Microsoft SQL Server 和 SQLite)中导入数据。文章涵盖了 `sqlread` 的基本语法、输入输出参数、使用示例以及注意事项,并通过多个实例演示了自定义导入选项、元信息检索和数据类型转换等内容。此外,还总结了导入数据库数据的通用流程及最佳实践建议,帮助用户更高效地进行数据分析和处理工作。

bash7scripter的博客 134

一个实际项目Java架构设计之总体设计

1      总体架构模块图 1.1   抽象架构模块图     1.2   具体技术架构模块图 如上图示所,框架主要包括了: l  MVC开发框架 l  工作流技术 l  用户、权限、角色管理 下面分别详细介绍。 2      MVC方案 2.1   视图层技术方案(view) 在常用开发框架的应用中,常用于视图层的有:Jsp ,Jsf,Fre

RocChen的专栏 3万+

【GlobalMapper精品教程】038:模拟水位上升(洪水淹没分析)案例教程

基于数字高程模型 ( DEM )格网模型,实现给定水深情况下洪水淹没区的计算模型,讨论洪水淹没演进过程可视化实现的关键技术,以三维可视化方式,动态而形象地模拟在指定洪水水位下的洪水淹没演进过程。

智慧空间实验室 2884

java笔记1:java的基本程序设计结构

第三章 java的基本程序设计结构 一个简单的java demo 和cpp 不一样的,类名是以大写字母开头的名词,如果名字由多个单词构成,每个单词的第一个字母也应该是大写的; publick class className { public static void main(String[] args) //标志的javamain函数 { program statements; } } ​ java中的所有函数都属于某个类的方法;因此java中的main必须要有应该外壳

qq_29498749的博客 260

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Java: 基本程序设计结构

一个简单的 Java 程序 public class Test { public static void main( String[] args){ System.out.println("We wiil not use 'Hello World!'"); } } //Java 区分大小写 以上为一个名为 test.java 的程序。 虽然上例很简单,但是所有的 ...

grefwfdxz 113

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

《深入理解<Java核心技术>第三章:Java的基本程序设计结构》

java基础知识

wertuiop_的博客 2004

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

专业语言:Java程序设计的基本结构

.史前Java .简单的Java程序的构建 .注释   .数据类型 .变量 .赋值和初始化   .操作符 .字符串 .控制流程   .大数字 .数组   史前Java   Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++

冥界执法者 521

Java核心技术总结一:Java的基本程序设计结构

Java的基本程序设计结构一、注释二、数据类型三、变量与常量四、运算符五、字符串六、输入与输出七、控制流程八、大数九、数组 一、注释 // 单行注释 /* */ 多行注释 /** */ 自动生成文档 二、数据类型 整型 类型 存储需求 取值范围 byte 1字节 -128 ~ 127 short 2字节 -32768 ~ 32767 int 4字节 -2147483648 ~ 214748364

weixin_44027397的博客 684

《Java核心卷I》笔记:Java概述,Java的基本程序设计结构

Java概述 java特点 简单性:Java语法是C++语法的一个“纯净”版本,这里没有头文件,指针运算,结构,联合,操作符重载,虚基类等 如今java的开发环境已经远远超出其他变成语言的开发环境。 现在有一个独立的具有较小类库的Java微型版(Java Micro Edition),这个版本适用于嵌入式设备 面向对象:Java与C++主要的不同点在于多重继承,Java中,取而代之的是更简单的接口编程。 健壮性:Java非常强调进行早期的问题检测,后期动态(运行时)检测,Java与C++最大的不同在于Ja

Powerstot的博客 898

Java程序设计:Java程序基本结构

Java程序基本结构

茜茜西西的博客 539

第三章:java基本程序设计结构(三)

输入输出,格式化输出,循环结构,break和continue区别,数组调用,new方法定义,数组拷贝,排序

likeyi_lky的博客 870

第三章:java基本程序设计结构(一)

进制换算、final使用、数据类型转换、原码反码补码、局部变量和全局变量

likeyi_lky的博客 871

Java核心卷Ⅰ阅读笔记(1-3章:Java程序设计概述、Java程序设计环境、Java的基本程序设计结构)

文章目录Java程序设计概述Java程序设计环境使用命令行工具 Java程序设计概述 Java8相比较Java7增加了Lambda表达式,包含默认方法的接口,流和日期时间库 Java在服务器端编程和跨平台客户端应用领域很有优势 Java程序设计环境 使用命令行工具 使用命令行工具之前要先将环境变量配置好 实例 javac Welcome.java java Welcome 上述命令,做了些什么? javac:将Welcome.java编译成Welcome.class java:java启

月月鸟的博客 331

Java核心技术(三):Java的基本程序设计结构

1.注释 单行注释 多行注释 文档注释 2.数据类型 Java是强类型语言,即每一个变量都需声明类型。共8种基本类型(4种整型,2种浮点类型,char类型和boolean类型) 类型 存储需求 取值范围 int 4字节 -2147483648~2147483647 short 2字节 -32768~32767 long 8字节 -9233372036854775808~9233372036854775807 byte 1字节 -128~127 float 4字节 大约±3

xueguchen的博客 159

Java程序设计的基本结构

本文关键字:基本结构、顺序结构、选择结构、循环结构。结构化程序设计有三种基本结构:顺序结构、选择结构和循环结构。结构化程序设计本身是一种编程的方式和思想,与语言并没有直接关系。但是不同的编程语言对于三种基本结构的表达方式是不同的,比如使用的关键字、语法的基本结构,但是整体的思路都是相同的。掌握了三种基本结构以后,即使我们使用不同的编程语言,只要再去学习一下语法上的差别,就可以马上掌握了。

微光点亮星辰 1万+

怎么结束switch循环_程序员:Java程序设计的基本结构,玩转循环结构

循环的基本结构为了讲解方便,我们可以将循环结构划分为四个部分来进行描述。当然,这四个部分并不是都要出现,甚至在都不出现时也可以构成一个循环结构。并且,对于不同的循环结构,每个部分的相对位置也不同。1. 初始化部分在进入循环结构之前可以定义一些循环中以及循环结束后都要用到的变量,进行赋值。2. 判断条件部分用于决定是否继续进行循环,如果为假,则循环结束。判断部分可以直接使用一个布尔类型的变量,或者使...

weixin_39593593的博客 1188
上一篇: java:语言发展历史
下一篇: java:对象与类
github_37320188
博客等级 码龄10年 24粉丝 86原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值