一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作

面向对象中的一些概念

下表列出了 面向对象 编程中的一些概念

名词

说明

对象

对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等

类是一个模板,它描述一类对象的行为和状态

方法

方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的

实例变量

每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定

第一个Java程序

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

public class HelloWorld {

/* 第一个Java程序

* 它将打印字符串 Hello World

*/

public static void main(String []args) {

System.out.println("Hello World"); // 打印 Hello World

}

}

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

打开 Notepad,把上面的代码添加进去;

把文件名保存为:HelloWorld.java;

打开cmd命令窗口,进入目标文件所在的位置,假设是C:\

在命令行窗口键入 javac HelloWorld.java  按下enter键编译代码。如果代码没有错误,cmd命令提示符会进入下一行。(假设环境变量都设置好了)。

再键入java HelloWorld 按下Enter键就可以运行程序了

你将会在窗口看到 Hello World

C : > javac HelloWorld.java

C : > java HelloWorld

Hello World

基本语法

编写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, strictfp

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 保留字

这些保留字不能用于常量、变量、和任何标识符的名称

关键字

描述

abstract

抽象方法,抽象类的修饰符

assert

断言条件是否满足

boolean

布尔数据类型

break

跳出循环或者label代码段

byte

8-bit 有符号数据类型

case

switch语句的一个条件

catch

和try搭配捕捉异常信息

char

16-bit Unicode字符数据类型

class

定义类

const

未使用

continue

不执行循环体剩余部分

default

switch语句中的默认分支

do

循环语句,循环体至少会执行一次

double

64-bit双精度浮点数

else

if条件不成立时执行的分支

enum

枚举类型

extends

表示一个类是另一个类的子类

final

表示一个值在初始化之后就不能再改变了表示方法不能被重写,或者一个类不能有子类

finally

为了完成执行的代码而设计的,主要是为了程序的健壮性和完整性,无论有没有异常发生都执行代码。

float

32-bit单精度浮点数

for

for循环语句

goto

未使用

if

条件语句

implements

表示一个类实现了接口

import

导入类

instanceof

测试一个对象是否是某个类的实例

int

32位整型数

interface

接口,一种抽象的类型,仅有方法和常量的定义

long

64位整型数

native

表示方法用非java代码实现

new

分配新的类实例

package

一系列相关类组成一个包

private

表示私有字段,或者方法等,只能从类内部访问

protected

表示字段只能通过类或者其子类访问子类或者在同一个包内的其他类

public

表示共有属性或者方法

return

方法返回值

short

16位数字

static

表示在类级别定义,所有实例共享的

strictfp

浮点数比较使用严格的规则

super

表示基类

switch

选择语句

synchronized

表示同一时间只能由一个线程访问的代码块

this

表示调用当前实例或者调用另一个构造函数

throw

抛出异常

throws

定义方法可能抛出的异常

transient

修饰不要序列化的字段

try

表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码

void

标记方法不返回任何值

volatile

标记字段可能会被多个线程同时访问,而不做同步

while

while循环

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基础语法实例教程_Java 基础语法相关推荐

  1. matlab基础与实例教程,MATLAB基础与实例教程

    系统全面,实例丰富 考虑到Matlab进行仿真和运算分析时的基础知识和实践操作,讲解从基础的变量.函数.数据类型等入手,涉及到数学分析.图形可视化.Simulink仿真.文件读写等,全面地介绍了Mat ...

  2. 黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三)

    黑马程序员全套Java教程_Java基础教程_异常(含扩展)(二十三) 1.1 异常概述与异常体系结构 1.2 JVM遇到异常时的默认处理方案 1.3 异常处理 1.4 异常处理之try--catch ...

  3. AutoCAD ObjectARX(VC)开发基础与实例教程2014版光盘镜像

    AutoCAD ObjectARX(VC)开发基础与实例教程2014,最新版,光盘镜像 作者:张帆 朱文俊 编著 出版社:中国电力出版社 出版时间:2014年6月 点击一下 转载于:https://w ...

  4. ObjectArx(VC)开发基础及实例教程-源码链接

    <ObjectArx(VC)开发基础及实例教程>的光盘 https://gitee.com/Presscad/ObjectArcVC

  5. sql数据库教程百度云_【推荐】零基础水彩画入门教程|零基础水彩教程百度云...

    零基础水彩画入门教程|零基础水彩教程百度云! 照着教程画却总是画不好,这些水彩技法你真的学会了吗? 盲目地照着葫芦画瓢,不懂控制确实很难学会,可以关注一下公众号:每日学绘画,可以领取水彩电子书和全套视 ...

  6. java实现初始化三角形数组_Java基础之数组初始化和数组JVM分析

    什么是数组 所谓数组,是具有相同数据类型的若干变量或者数据按照一定排序规则组合起来的一种数据存储格式.数组中的数据称为数组元素,我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其 ...

  7. 计算机网络基础及应用教程,计算机网络基础及应用教程

    摘要: <高等学校文科类专业"十一五"计算机规划教材:计算机网络基础及应用教程>为教育部高校文科计算机教学指导委员会的课程改革立项教材,其特色是以计算机网络技术应用能力 ...

  8. java商场购物幸运客户练习题_JAVA基础语法练习(一)

    一.基础案例 1.训练案例1 1.1.训练描述 键盘录入一个int类型的数据,使用三元运算符判断这个数是奇数还是偶数 import java.util.Scanner; public class X2 ...

  9. java多线程教程_java 基础教程之多线程详解及简单实例

    java 多线程详解 在这篇文章里,我们关注多线程.多线程是一个复杂的话题,包含了很多内容,这篇文章主要关注线程的基本属性.如何创建线程.线程的状态切换以及线程通信. 线程是操作系统运行的基本单位,它 ...

最新文章

  1. C#操作excel(多种方法比较)
  2. 阿里云centos7使用yum安装mysql的正确姿势
  3. 淘宝正在清洗35岁以上的老人
  4. linux TUN 虚拟网卡设备
  5. python编程入门-Python 基础教程
  6. 用viewpager实现图片轮播
  7. Androd TV开发-前言
  8. virtualxposed使用教程_VirtualXposed
  9. 写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组 例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃,A
  10. 【科研数据处理】[基础]类别变量频数分析图表、数值变量分布图表与正态性检验(包含对数正态)
  11. 支持向量机——SVM算法及例子(代码)
  12. leetcode 1833 雪糕的最大数量
  13. npm WARN cli npm v9.1.2 does not support Node.js v14.12.0. You should probably upgrade to解决方法
  14. 机器学习 | MATLAB实现BP神经网络newff参数设定(上)
  15. 崔毅东 C++程序设计入门(上) 第5单元:万类霜天竞自由 – 对象和类的更多内容 笔记
  16. 燕十八 mysql_布尔教育燕十八mysql优化视频课件源码分享
  17. 阿里云服务器(centos)安装MySQL
  18. 题外话之怎么脱离旱鸭子
  19. 二、农村土地家庭承包改革
  20. uniapp实现h5、app、微信小程序三端pdf文件下载和预览

热门文章

  1. C#使用模板文件批量导出word文档
  2. java 不同包_Java项目中不同包的命名及作用
  3. 画直线_在鸡面前画一条直线,为什么它会晕?西瓜视频这知识好冷告诉答案
  4. jvm oracle sun,JVM - 常见的JVM种类
  5. 神舟电脑装linux双系统,个人windows10和Ubuntu18.04游戏笔记本uefi双磁盘双系统安装过程...
  6. Win7旗舰版系统0x0000007f蓝屏怎么办
  7. QQ浏览器如何更改截图路径
  8. win7系统屏幕键盘打开教程
  9. Windows平台RTMP/RTSP播放器如何实现实时音量调节
  10. 同时运行多个logstash而kibana监控界面只统计到一个的问题