main方法中窥世界
今天我们来看一个编程语言入门必演示的HelloWorld程序,借此来展示我们的重点知识。话不多说,先看代码。
本段代码在eclipse中编辑运行,怎么在eclipse中新建项目呢:点击左上角File选择New一个Project.虽然本例仅仅实现了一个简单的输出HelloWorld一行字符串的简单功能,但是万丈高楼平地起,一个工程所需要的东西它都有。目录结构如下:
src文件夹中包含有多个包,包里有java源代码文件。为什么要分这么多层呢?主要便于文件组织和管理。把不同类型的文件放在不同的包里,这样便于查找分类。
当你引用别人的类库时,可能会有很多的文件,这时候不是一个文件一个文件导入的,而是把这些文件所在的包导入工程中,方便编程。
同时不同的包可以定义不同的访问权限。主要的就是自己包中类可不可以被别的包里的类访问,以及自己包中类与类之间的访问权限等。
另一个文件JRE System Library中包含了运行程序所需要的环境源文件,为工程运行提供支持。到以后建立更复杂的工程时,常会使用一些框架。这些时候也会导入一些外部类库,俗称lib库。
接下来我们重点分析例子源代码,记笔记记笔记!
第一行表示文件所在包,第二行public class Sample_01.这里定义了一个访问权限为public的类Sample_01.这里就可以和上面所述的联系起来了。对于类来说,只有public和默认修饰(即不写)。
public修饰的类可以被别的包访问,默认的类只能被本包中的类访问。以后碰到内部类的时候可以用private修饰,当然这是后话了,你只要知道现在写的源代码文件类是外部类。
为啥外部类不能用private或者protected来修饰呢?这也是一个很有意思的问题哦。如果一个类写成了private的,那么它就不可以被别的类调用了,只能自己玩自己的。那你项目里要这么个玩意有啥用,跟别的类都没有互动。
而protected表示的是受保护的,不能被外部的类重新实例化和调用,所以也不能用来修饰外部类。
第三行写了一个方法,方法名叫main,参数为String[] args,方法为void类型即没有返回值,static表示静态的,而且是public的。学习一门新的语言的第一个程序,都是用来演示语言特性的。
也就是说,是很简单的程序,但是展示出了语言的基本框架。哦,那我知道了。以后写JAVA程序,这个main方法必不可少。对不对?对的。
main方法是程序的唯一入口,不管你写多少的代码,main方法必须写而且 只有一个。而且格式是固定的,不可以改!!!必须写成public static void main(String[] args){}.
static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。
并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法、变量都是必须依赖具体的对象才能够被调用。
那为什么函数类型是void呢?那是因为由于main方法是程序的入口,在程序栈中处于最底层,没有哪个方法能够接受main方法的返回值。
对于函数的参数,必须使用字符串数组String[],变量名随意,但一般都写args即arguments的缩写。由于参数是数组,所以你可以写成String[] args,也可以写成String args[]都可以。
不过两者的意义稍有区别。前者声明了一个字符串数组类型,后者则是一个字符串类型,但这个字符串类型的变量本身是数组。
有了这个参数我们可以通过命令行对main方法进行传参,当然eclipse也可以做,只不过最本质的还是通过命令行。可以自己试一试哦。
第四行输出了一句话HelloWorld.这里out是一种流对象,表示输出。print后面加ln表示打印换行。后面还会详细介绍IO对象,具体的我们就留到以后再说。
由于小编水平有限,如有不足,还请不吝赐教!!!此处也是重点,记下记下。微信搜索关注油墨山公众号,获取更多文章咨询!!!
◆◆油墨未干,为何停下双手!◆◆
原文地址:https://www.cnblogs.com/skylife/p/11094512.html
- MySQL基础入门系列之——字符与日期数据处理
- P2038 无线网络发射器选址
- ggplot2双坐标轴的解决方案
- Modifying namespace in XML document programmatically
- ggplot2学习笔记——图例系统及其调整函数
- 一款脑洞大开的表格可视化神器
- P3908 异或之和
- P1939 【模板】矩阵加速(数列)
- R语言学习笔记之——数据处理神器data.table
- P3389 【模板】高斯消元法
- hihoCoder #1195 : 高斯消元·一
- Python黑帽编程1.3 Python运行时与包管理工具
- P2421 A-B数对(增强版)
- P1824 进击的奶牛
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Laravel 登录后清空COOKIE的操作方法
- 使用laravel和ajax实现整个页面无刷新的操作方法
- Laravel 读取 config 下的数据方法
- PHP实现数组根据某个字段进行水平合并,横向合并案例分析
- laravel框架上传图片实现实时预览功能
- PHP 多进程与信号中断实现多任务常驻内存管理实例方法
- Yii 框架控制器创建使用及控制器响应操作示例
- laravel-admin 实现给grid的列添加行数序号的方法
- Laravel 自动生成验证的实例讲解:login / logout
- 关于Laravel-admin的基础用法总结和自定义model详解
- 解决Laravel5.2 Auth认证退出失效的问题
- php输出文字乱码的解决方法
- laravel-admin表单提交隐藏一些数据,回调时获取数据的方法
- laravel 5.3 单用户登录简单实现方法
- Thinkphp5.0 框架的请求方式与响应方式分析