(四)java程序基本组成
一个基本的java程序一般包括几个部分,分别是程序所在的包名、程序中用到的其他包的路径、程序的类、类中的方法、变量和字面量。
package demo;
import java.util.Date;
public class Demo {
public static void main(String[] args) {
int num;
num=1;
String str=new String();
Date date=new Date();
System.out.println(str);
System.out.println(num);
System.out.println(date);
}
}以上是一个简单的程序,输出一个整数和当前的系统日期。其中,demo是包名,java.util.Date是导入的日期类的包,Demo是类名,main是类中的方法名,num是变量,1是字面量。
package是定义包的关键词,
import是导包的关键词,
public 是权限修饰词的一种,代表公有的、公开的,还有另外三个分别是私有的private、受保护的protect和默认的。
class是定义类的关键词,
static也是一种修饰词,代表静态的。带有static的方法、变量等属于类所有不属于对象。类是类型,一种略抽象的东西,类的实例化就是对象,例如人类、人,这是类,不具体;而具体到任何一个人,例如某某人,这就是个对象。
包名、类名、方法名以及变量名等一般都是自己随便取,但是最好见名知意、使用英文并遵循驼峰命名法。所谓的驼峰命名法就是当几个单词组合起来作为一个单词时,第一个的首字母小写,其他的首字母大写,首字母之外的所有字母小写。初学者容易犯的一个错误是,喜欢使用伪英文,其实就是中文拼音,例如日期,不是date而是写成riqi,乍一看好像是英文,实际上不是那么回事。
在上边例子中的方法名比较特殊,main方法在java中的作用是程序的入口,也就是说一般程序会从这里进入开始运行,而且这个方法那一行是固定的写法,任何一个单词和符号包括括号里边的参数都不能改变,一旦变了,那他就不是主函数,也就不能起到程序入口的作用了。
命名还有一个需要注意的是,不能使用java中的关键字,也不能使用java中的保留字,所谓的保留字,其实就是java定义的可能成为关键字,但是目前还不是关键字的单词。
上边的例子中,变量有三个,分别是num、str和date,这三个有区别,int和str都是没有导包的,而date是有导包的。在java中,八大基本数据类型都是不用导包的,所以int不用;而str的类型是String,他不属于八大基本类型,但是因为它实在是太常用了,所以它拥有特权,也和八大基本类型一样不用导包;至于Date,他虽然也常用,但是并没有String那么常用,所以他要老老实实的导包,当然了,除开String之外的所有引用类型都要导包。
变量其实就相当于一个装东西的盒子,也就是一个可以改变内容的东西,它里面装的我们看到的东西就是所谓的字面量。比如int num=1,num是变量盒子,而1是字面量,也就是盒子里的东西。
在最后,程序中输出了这三个变量的内容,在控制台打印输出的常用语句是System.out.println();括号里边装的就是要输出的内容,在这里用的是上边的变量。变量在使用时需要注意的是,必须先声明并初始化,然后再使用。
声明说的简单点就是类型加变量名,而初始化说的简单点就是给他赋值,给盒子装上东西,比如给nun装上1,给date装上new Date()。
变量的声明和初始化一般有两种形式,先声明再初始化和声明的同时初始化。在上边的例子中,num就是先声明再初始化,而其他两个就是声明的同时初始化。
变量在使用时还需要注意的是,它有作用域,也就是说即使声明和初始化了却并不一定就可以用,变量的作用范围一般是从包含他的最近的大括号开始到结束的范围内,超出范围将会失效。
(四)java程序基本组成的更多相关文章
- 分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小
原文:分享非常有用的Java程序 (关键代码)(四)---动态改变数组的大小 /** * Reallocates an array with a new size, and copies the co ...
- “全栈2019”Java第四章:创建第一个Java程序
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- # 2016-2017-2 20155319 《Java程序设计》实验四Android程序开发实验报告
2016-2017-2 20155319 <Java程序设计>实验四Android程序开发实验报告 实验一 实验内容 Android Stuidio的安装测试: 参考<Java和An ...
- 20155338 2016-2017-2《Java程序设计》实验四Android程序开发实验报告
2016-2017-2 20155338 <Java程序设计>实验四Android程序开发实验报告 实验过程及成果展示 1.修改res目录下的layout文件夹中的activity_mai ...
- 优秀Java程序员的四大忌,你避免了吗?
做为一名优秀的程序员需要具备永不放弃的精神,如果一个程序员不具备这种永不放弃的精神,那么这个程序员只能算是一名假程序员.而通往成功的道路上往往是不平坦的,想要成为一个合格的高级Java程序员,需要规避 ...
- 《JAVA 程序员面试宝典(第四版)》读书笔记之前言
工作五年了一直在小的软件公司混,总感觉自己的专业知识没有太大的提升.当然了中间也换了一两家公司,面试的公司就很多家,总感觉正规的软件公司(无论大小)对于基础知识的考核都非常重视,而不管你说你之前服务过 ...
- 一个工作了四年的java程序员的心得体会
年底了,该给自己写点总结了!从毕业到现在已经快4年啦,一直在Java的WEB开发行业混迹.我不是牛人,但是自我感觉还算是个合格的程序员,有必要写下自己将近4年来的经历,给自我以提示,给刚入行的朋友提供 ...
- 为Java程序员金三银四精心挑选的五十道面试题与答案
1.面向对象的特征有哪些方面? [基础] 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问 ...
- Java程序员金三银四精心准备的面试题及答案(基础篇)
1.面向对象的特征有哪些方面? [基础] 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问 ...
随机推荐
- Chrome A标签的迁移错误:【Error loading page】
在IE中经常使用A标签用来迁移,正确的写法是 <a href="001.html"></a>即可,不过在chrome上面可能会引发错误无法迁移. 比如用下面 ...
- leetcode 136. Single Number ----- java
Given an array of integers, every element appears twice except for one. Find that single one. Note:Y ...
- 奇怪的电梯(HDU1548) (Dijkstra)或者(BFS)
问题 E: 奇怪的电梯 时间限制: 1 Sec 内存限制: 64 MB提交: 35 解决: 16[提交][状态][讨论版] 题目描述 有一天桐桐做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都 ...
- Xcode7.0.1(ios9)的部分适配问题
今天更新了Xcode 7 正式版,App编译出现很多警告,在App运行的时候出现如下的提示......... the resource could not be loaded because the ...
- hdu1025 dp(最长上升子序列LIS)
题意:有一些穷国和一些富国分别排在两条直线上,每个穷国和一个富国之间可以建道路,但是路不能交叉,给出每个穷国和富国的联系,求最多能建多少条路 我一开始在想有点像二分图匹配orz,很快就发现,当我把穷国 ...
- console下纯字符实现的贪吃蛇
最近简直超级无聊-- code blocks win7 64编译运行无问题,应该其他编译器也不会有问题. w:上 s:下 a:左 d:右 CS标准方向控制,AK47和M4这种高级货是没有滴-- 废话不 ...
- 对 Android 开发者有益的 40 条优化建议
本文转载于:http://www.oschina.net/translate/40-developer-tips-for-android-optimization?cmp 下面是开始Android编程 ...
- CentOS6.4-RMAN定时任务备份 on 11GR2
1.rman备份脚本位置: /home/oracle ./scripts/ ./bin -----存放rman脚本 ./log ...
- 11g RAC日志体系(cluster,database,asm,scan日志,ADRCI工具的使用)
- 【android极光推送】—从客户端到后台,一文通吃
sion android:name="android.permission.VIBRATE" /> <uses-permission android:name=&quo ...