《Java从入门到失业》第三章:基础语法及基本程序结构(3.1):一个简单的例子
这个地方纠结了很久,到底是从类和对象开始,还是从基础语言开始,考虑到我是给大家开山的,还是把类留在后面。
3.1一个简单的例子
还记得前面的HelloWorld吗?它又要出场了。不过这一次我们用Eclipse召唤它。先打开Eclipse,点击菜单栏的“File”-> “New”->“Project”:
我们新建一个工程(Project)。在Eclipse中,工程是基本组织单位,它就好比我们实际工作中的一个实际项目,比如一个电商公司,肯定需要做一个订单管理系统项目,那么我们一般就会创建一个订单管理工程。这里我们创建一个第三章的工程:
我们可以看到,可以创建很多种类型的工程,先不管别的,我们选择Java Project:
这个页面做一个简单的说明:
- Project name:工程的名字,我们叫做ch03
- location:工程存放的路径;我们勾选使用默认的,则会存放在我们的workspace中
- JRE:选择我们使用哪个JRE,这里有3个选项
- 使用执行环境的JRE,还记得我们安装Eclipse的时候,它默认扫描到我们安装的JDK吗?
- 使用工程特殊的JRE,我们可以在Eclipse中配置很多个JRE,然后针对当前这个工程选择一个
- 使用默认的JRE,并且有当前workspace的偏好设置,这里暂且不表
- Project layout:工程结构,可以用不同的目录结构来组织工程,默认的使用工程目录作为根目录,下面有src和bin两个文件夹。src存放源代码,bin存放class文件
选择完毕后,点击“Finish”:
这个页面暂时不做解释,继续“Finish”:
会弹出一个选择框,是否使用Java透视图。Java透视图是专门为Java开发者设计的,提供了很多有用的导航,我们当然要用了,点击“Open Perspective”,这时,我们发现界面发生了变化,变成Java透视图了:
接下来,我们来创建HelloWorld类。右键点击“src”->“New”->“Class”:
我们给类起一个名字:HelloWorld,勾选“public static void main(String[] args)”,点击“Finish”,我们发现,Eclipse自动给我们创建了一个类如下:
我们稍做修改,添加两行代码如下:
1 package ch03;
2
3 public class HelloWorld {
4 //这是主函数
5 public static void main(String[] args) {
6 String s="Java大失叔,你真棒";
7 System.out.println(s);
8 }
9 }
然后我们尝试运行一下,如图操作:
我们发现Eclipse底部多出了一个标签:Console,并且有文字输出,结果如下图:
Console就是控制台,我们程序的运行结果就会显示在这里,这个东西将来是和我们打交道最多的控件之一。接下来,我们对照这个例子,做一些解释。
- 第1行有个package,我们先不解释,后面会详细说明。
- 第3行的public,这是一个“访问修饰符(access modifier)”,可以控制程序的其他部分对这段代码的访问级别,具体后面会详细说明。
- 第3行的class,这是一个定义类的关键字,关于类后面也会做详细介绍。
- 第3行的HelloWorld,这是我们的自定义类的名字。我们把它叫标识符。Java的标识符有一定的命名规范,我们以后也会说明。
- 第5到第8行,我们称之为“main函数”,也叫“main方法”,是Java虚拟机运行程序的入口,因此我们的程序至少的包含一个主函数作为运行入口。(还得我们创建类的时候,勾选了一个复选框么?Eclipse会自动帮我们编写一个空的主函数)
- 第3行的{和第9行的}是一对,在Java中,我们用花括号{}来划分程序,我们称之为代码块。
- 第6行的String s="Java大失叔,你真棒";,这是一个完整的语句。String是Java提供的一个类,可以创建字符串,字母s是我们定义的一个变量,具体后面详表。
- 第7行System.out.println(s); ,作用就是在控制台把变量s的值打印出来。
- 然后还有一些空白行、空白字符等,这些在Java编译器编译后,都会被忽略
- 第4行://这是主函数,这是注释,用来在源代码中进行一些说明,编译器也会忽略掉
这么一段小小的代码,居然包含了这么多内容,接下来,我先泡杯茶,咱们坐下来慢慢聊。接下来的这一章的内容会略显枯燥乏味,大家做好心理准备。
- Go语言-base64使用
- Gitcafe绑定自定义域名
- 【死磕Java并发】—- J.U.C之并发工具类:CyclicBarrier
- Android Studio快捷键
- go 切片使用小结
- 分布式事务 TCC-Transaction 源码分析 —— 项目实战
- 分布式事务 TCC-Transaction 源码分析 —— 事务恢复
- Go的语言特性总结
- 注册中心 Eureka 源码解析 —— Eureka-Client 初始化(三)之 EurekaClient
- 从一次 Snowflake 异常说起
- 分布式事务 TCC-Transaction 源码分析 —— Dubbo 支持
- 2016 腾讯软件开发面试题(部分)
- 分布式事务 TCC-Transaction 源码分析 —— 运维平台
- 2016美团面试经历
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Python实现多线程下载脚本的示例代码
- Android自定义控件仿iOS滑块SwitchButton
- kotlin gson反序列化默认值失效深入讲解
- Android使用Volley实现上传文件功能
- 工作中使用jasmine遇到的一个html element和Component绑定属性失去同步的问题
- Android使用Volley框架定制PostUploadRequest上传文件
- Android实现横向滑动卡片效果
- 在jasmine beforeEach里修改UI元素的一个side effect
- Android实现头像上传功能
- 关于jasmine里debugElement.query和fixture.detectChanges的依赖关系
- 使用python批量转换文件编码为UTF-8的实现
- rxjs operator学习笔记
- python实现将两个文件夹合并至另一个文件夹(制作数据集)
- rxjs里使用from operator从一个generator里生成Observable
- 使用asyncScheduler进行Observable的延迟subscribe