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

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

第一个Java程序

下面看一个简单的 Java 程序,它将输出字符串 Hello World

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

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

  • 打开代码编辑器,把上面的代码添加进去;
  • 把文件名保存为:HelloWorld.java;
  • 打开 cmd 命令窗口,进入目标文件所在的位置,假设是 C:\
  • 在命令行窗口输入 javac HelloWorld.java 按下回车键编译代码。如果代码没有错误,cmd 命令提示符会进入下一行(假设环境变量都设置好了)。
  • 再键输入 java HelloWorld 按下回车键就可以运行程序了

你将会在窗口看到 Hello World

$ javac HelloWorld.java
$ java HelloWorld
Hello World

如果遇到编码问题,我们可以使用 -encoding 选项设置 utf-8 来编译:

javac -encoding UTF-8 HelloWorld.java
java HelloWorld 

基本语法

编写 Java 程序时,应注意以下几点:

  • 大小写敏感:Java 是大小写敏感的,这就意味着标识符 Hello 与 hello 是不同的。
  • 类名:对于所有的类来说,类名的首字母应该大写。如果类名由若干单词组成,那么每个单词的首字母应该大写,例如 MyFirstJavaClass 。
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的 Java 程序由 public static void main(String[] 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, synchronized

在后面的章节中我们会深入讨论 Java 修饰符。


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 关键字。这些保留字不能用于常量、变量、和任何标识符的名称。

类别 关键字 说明
访问控制 private 私有的
protected 受保护的
public 公共的
default 默认
类、方法和变量修饰符 abstract 声明抽象
class
extends 扩充,继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非 Java 实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句 break 跳出循环
case 定义一个值以供 switch 选择
continue 继续
default 默认
do 运行
else 否则
for 循环
if 如果
instanceof 实例
return 返回
switch 根据值选择执行
while 循环
错误处理 assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常可能被抛出
try 捕获异常
包相关 import 引入
package
基本类型 boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点
float 单精度浮点
int 整型
long 长整型
short 短整型
变量引用 super 父类,超类
this 本类
void 无返回值
保留关键字 goto 是关键字,但不能使用
const 是关键字,但不能使用
null

Java注释

类似于 C/C++、Java 也支持单行以及多行注释。注释中的字符将被 Java 编译器忽略。

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

Java 空行

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


继承

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

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


接口

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

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


Java 源程序与编译型运行区别

如下图所示:

Java从入门到跑路相关推荐

  1. 【Java进阶营】Spring全家桶系列–[SpringBoot入门到跑路]

    Spring全家桶----[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么SpringBoot被推上主流 ...

  2. Spring全家桶系列–[SpringBoot入门到跑路]

    //本文作者:cuifuan Spring全家桶----[SpringBoot入门到跑路] 对于之前的Spring框架的使用,各种配置文件XML.properties一旦出错之后错误难寻,这也是为什么 ...

  3. javascript从入门到跑路-----小文的js学习笔记(25)------运动框架----匀速运动、缓冲运动、多物体运动、链式运动

    ** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...

  4. unity 2020 怎么写shader使其接受光照?_Shader从入门到跑路:阶段性自我小测2(屏幕后处理、替换渲染、双Pass渲染)...

    以下是一些可供读者自我检测的问题,同上次一样,笔者不会提供答案,但如果实在想不明白依然可以私信笔者问思路.经某些读者建议,每题加上了分数,供各位自检. 练习1:使用第5章讲到的屏幕后处理效果,对屏幕颜 ...

  5. javascript从入门到跑路-----小文的js学习笔记目录

    ** javascript从入门到跑路-----小文的js学习笔记(1)---------script.alert.document.write() 和 console.log 标签 javascri ...

  6. 反手来个K8S入门到跑路

    layout: post title: 反手来个K8S入门到跑路 category: linux date: 2019-06-09 tags: linux k8s 反手来个K8S入门到跑路 前言 放假 ...

  7. 【视频教程免费领取】48G全套Java视频教程,从入门到跑路!

    领取方式 关注公众号,发送java0407获取下载链接. 扫码关注公众号,公众号回复 java0407 获取下载地址 目录结构 目录:/读书ReadBook [57.6G] ┣━━48G全套Java视 ...

  8. mysql入门到跑路_MySQL 24小时入门笔记(3),插入和删除,删库到跑路

    MySQL 24小时入门笔记 插入 INSERT INSERT用法非常简单.现在我们有表students如下. 列名 类型 约束 id int primary key name char(16) NO ...

  9. Web 3D 从入门到跑路

    大厂技术  坚持周更  精选好文 前情概要 作为在该领域小白的我,在准备该主题分享之前,我信心满满的去知乎查了下,如何学习 WebGL? 如何入手webGl以及three.js呢? - 知乎[1] 前 ...

  10. Java基础入门-自学之路

    前言: 1. 笔者的java没有经过真正系统的学习过,只是跟着书上自学的.所以有些地方难免会理解错误之类的,如果看到错误的地方,请指出来,或者有什么不理解的地方也可以提出来,大家一起进步. 2. 这篇 ...

最新文章

  1. hnswlib RuntimeError: Cannot return the results in a contigious 2D array. Probably ef or M is to sma
  2. python画图代码星星-Python利用for循环打印星号三角形的案例
  3. 举例详细说明javascript作用域、闭包原理以及性能问题(转)
  4. k8s,nginx备份日志脚本
  5. Intent对象详解(一)
  6. 2017年第1贴:EXT.JS使用MVC模式时,注意如何协调MODEL, STORE,VIEW,CONTROLLER的关系
  7. 《Programming WPF》翻译 第7章 4.转换
  8. 【恋上数据结构】计数排序
  9. db2 mysql oracle,五大主流数据库比较 DB2 Oracle MySQL SyBase SQLServer)
  10. python发音1001python发音-Python学习笔记Day3 - Python运算符
  11. pdca管理循环基本主张_PDCA循环在生产管理中的应用
  12. android listview表格分页显示,Android ListView分页简单实现
  13. Chrome OS Factory开发测试流程
  14. mysql数据库导出txt文件_mysql数据库导出表数据 为.txt文件
  15. jwplayer播放器
  16. 手把手搭建一个属于自己的在线 IDE
  17. 你还在找音乐网站吗?试试这几个吧
  18. C语言刷题随记 —— 国际象棋棋盘
  19. matlab lm计算方式,lm算法(lm算法原理介绍)
  20. Matlab:实现光波偏振态仿真

热门文章

  1. 用 Vue 做一个简单的购物app
  2. Hibernate中创建Session(会话)接口的方法
  3. spirng 事物只支持 dml语句 update,insert delete
  4. Java语言中的----继承(二)
  5. scikit-learn:在实际项目中用到过的知识点(总结)
  6. 开通博客,记录一下。
  7. mysql中timestamp字段
  8. [家里蹲大学数学杂志]第392期中山大学2015年泛函分析考博试题回忆版
  9. inotify+unison双向同步环境部署
  10. linux服务器优化