Java基础语法

Java基础语法

  • 1.类和对象
    • 1.1 引用
    • 1.2 对象null
  • 2.基础语法
  • 3.标识符
  • 4.修饰符
  • 5.变量
    • 5.1 局部变量、类变量、成员变量
    • 5.2 常量和静态变量的区别
    • 5.3 静态变量的命名规范
  • 6.数组
  • 7.枚举
  • 8.关键字
  • 9.注释
  • 10.空行
  • 11.继承
  • 12.接口
  • 13.Java源程序与编译型运行区别

1.类和对象

  • :把具有相同属性与行为的一类对象抽象为类。类是抽象概念,如:人类、学生等,无法具体到每个实体。类是一个描述,一种类型。
  • 对象:某个类的实体。当有了对象后,这些属性便有了属性值,行为也有了相应的意义。如:某个具体的人(如:小王),某个具体的学生(如:小刘)

类是描述某一类对象的统称,对象是这个类的一个实例。

1.1 引用

创建一个Student类型的对象,理解引用的概念:

/*
new 表示创建
new Student()表示创建一个 Student 类型的对象
stu  表示该对象的名字(专业的说,stu 是一个引用,它引用了一个对象)
*/
Student stu = new Student();
stu.phone="123";


/*
这里表示 stu 和 xiaobai 引用的是同一个对象,并不是把 stu 的值赋值给 xiaobai
也不是复制一个 stu 对象
 */
Student xiaobai = stu;

/*如果修改 xiaobai 的 phone 字段*/
xiaobai.phone = "15191822222";

/*打印*/
System.out.println(stu.phone);
/*会发现控制台的 phone 为 15191822222 ,因为他们引用的是同一个对象*/

1.2 对象null

null表示空,不存在
Student stu = null;表示stu不指向任何对象.它的属性和方法是不可访问的

2.基础语法

  • 对大小写敏感
  • 类名:用大驼峰式命名(如:MyTest)
  • 方法:用小驼峰式命名(如:myHello)

3.标识符

  • 所有标识符应该是字母A-Z,a-z,可以包含$,_
  • 首字母不可以是数字或特殊字符(如:-salary,12value)

4.修饰符

  • 访问控制修饰符default , public , protected , private
  • 非访问控制修饰符final , abstract , static , synchonized

5.变量

5.1 局部变量、类变量、成员变量

  • 局部变量
    在方法、构造函数或者语句块中定义的变量。变量的声明和初始化都在方法中,方法结束后,变量自动销毁。
int localVar = 10;
  • 类变量(静态变量)
    声明在类中,方法体之外,必须声明为static类型。它们属于类而不是实例,所有实例共享同一个变量的值,类变量在类加载时只被初始化一次。无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所以实例共享。
public class ExampleClass{
    static int classVar;
    //当修改classVar时,所有实例的classVar都会被修改
}

访问方式

//通过类名访问
ExampleClass.classVar =10;

//通过实例名访问
ExampleClass exclass = new ExampleClass();
exclass.classVar = 20;
  • 成员变量(非静态变量、实例变量)
    声明在类中,方法体之外。在创建对象的时候被实例化。可以被类中的方法、构造方法和特定类的语句块访问。
public class ExampleClass{
    int instanceVar;
    //当修改instanceVar时,只有该实例的instanceVar被修改
}

5.2 常量和静态变量的区别

常量也是和类相关的,但它是用final关键字修饰的变量,一旦被赋值就不能被修改。与静态变量不同的是,常量在编译时就已经确定了它的值,而静态变量的值可以在运行时改变。常量常用于储存固定的值,如数字通常熟、配置信息等。静态变量通常用于储存可变的数据。

5.3 静态变量的命名规范

  • 使用驼峰命名法:首字母小写,后续每个单词的首字母大写
public static int myStaticVariable;
  • 全大写字母:全大写字母,单词直接用下划线分隔
public static int MAX_SIZE = 100;
  • 描述性:变量名应该是有意义的,能够清晰地表达该变量的用途。避免使用单个字符或不具有明确含义的缩写。
  • 避免使用索性:尽量避免缩写,以提高代码的可读性。如果使用缩写是有必要的,确保广泛理解,并在注释中进行解释。

6.数组

数组是储存在堆上的对象,看一步保存多个同类型变量。(如:int[] values ={1,2,3,4,5};)

7.枚举

枚举限制变量稚只能是预设的值。使用枚举可以减少代码中的BUG。
例如,我们为果汁店设计一个程序,果汁的容量种类设置为小杯、中杯、大杯。除这三种容量外,将不容许有其他的容量类型。

class FreshJuice{
enum FreshJuiceSize{SMALL,MEDIUM,LAREG}
}

使用:

int size = FreshJuice.FreshJuiceSize.MEDIUM;

8.关键字

类别关键字说明
访问控制private私有的
protected受保护的
public公共的
default 默认
类、方法和变量修饰符abstract声明抽象
class
extends扩充、继承
final最终值、不可改变的
implements实现(接口)
interface接口
native本地、原生方法(非 Java 实现)
new创建
static静态
strictfp严格浮点、精准浮点
synchronized线程、同步
transient短暂
volatile易失
程序控制语句break跳出循环
case定义一个值以供 switch 选择
continue继续
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是关键字,但不能使用

9.注释

Java编译时,会将代码里注释忽略掉。增强程序的可读性、可维护性。
注释是良好的编程习惯,它使程序员更容易地理解代码的用途和功能。

  • 多行注释/**/
  • 单行注释//
  • 文档注释
/** 绘制一个条形图(描述)
* @author 作者
* @param 参数
* @return 返回值
*/

文档注释示例:

  • 头部
/**
* 项目名称:
* 描述:
* 创建时间:
* @author:<a href="mail to:xx@xx.com" rel="nofollow">作者</a>
* @version v1.0
* @update:[序号][日期YYYY-MM-DD][更改人姓名][变更描述]
*/
  • 方法
/**
* @Title:[题目]
* @Description:[功能描述]
* [使用案例]
* @Param:[参数]
* @Return:[返回值]
* @update:[序号][日期YYYY-MM-DD][更改人姓名][变更描述]
*/

10.空行

Java编译时,会将代码里空行忽略掉

11.继承

如果你创建的新类需要的属性和方法,在别的类里得到实现,就可以利用继承的方法,重用已存在的方法和属性,而不是重写这些高度相似的代码。

  • 被继承的类称为超类(super class)或父类
  • 派生的类称为子类(sub class)

12.接口

接口可以理解为对象间相互通信的协议。接口只定义派生用到的方法,具体实现在派生类里实现。

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

编译连接
执行
编译
解释执行
编译型运行程序
可执行程序EXE
操作系统
裸机
Java源程序.java
字节代码程序.class
解释器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值