首页 > 代码库 > Java课程:1.Java语法基础
Java课程:1.Java语法基础
1.编写程序时注意:
大小写敏感,记得区分大小写;
类名首字母大写,多个单词的话每个单词都要首字母大写(可以通过暗F2键来修改类名);
方法名首字母都要小写,多个单词的话,除了第一个字母小写外其他首字母都大写;
源文件名与类名定义相同,存储某个单独的类文件是记得默认用类名作为文件名保存,后缀为.Java文件;
主方法入口:所有的Java 程序由public static void main(String []args)方法开始执行,不加的话程序没法执行。(static的方法调用只能调用静态方法直接用调用写方法名或者类名.方法名,非静态定义的方法需要再new出一个对象即类名 对象名 = new 类名 )
2.标识符:类名、变量名以及方法名都被称为标识符。
关于Java标识符,有以下几点需要注意:
所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始,记得不能用数字作为首字母。
首字符之后可以是任何字符的组合
关键字不能用作标识符
标识符是大小写敏感的
合法标识符举例:age、$salary、_value、__1_value
非法标识符举例:123abc、-salary
3.Java可以使用修饰符(对类或者类的方法和变量设置访问权限)来修饰类中方法和属性:
*可访问修饰符 : default, public , protected, private
| 同一个类 | 同一个包 | 不同包的子类 | 不同包的非子类 |
Private | √ |
|
|
|
Default | √ | √ |
|
|
Protected | √ | √ | √ |
|
Public | √ | √ | √ | √ |
*不可访问修饰符 :static, final, abstract, Synchronized和volatile:后面两个做了解。
public 成员变量可以被项目中的任何方法访问,建议尽量少用
protected 不在同一个包中的类不能访问,但子类可以访问
private 只能在同一个类中使用
static * 静态变量关键字用来声明独立于对象的静态变量,必须在方法构造方法和语句块之外声明,局部变量不能被声明为static变量 。又称为类变量,其值为该类的所有对象共享,不管实例化了多少个对象,不会因类的对象不同而不同 。在内存中已经分配好了它的位置,无论怎么变动都不会影响到它。(在子程序中定义的变量(方法、构造方法或者语句块中,当它们执行完成后,变量将会被销毁;可访问修饰符不能用于局部变量;局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用)称为局部变量,在程序的一开始定义的变量(类名下面那些)称为全局变量。)
*静态方法:Static关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量(又称成员变量,静态变量称类变量)。静态方法从参数列表得到数据,然后计算这些数据。
final *成员变量,Final变量能被显式地初始化并且只能初始化一次,final对象的引用不能改变,但是里面的值可以改变。其值保持不变.修饰符通常和static修饰符一起使用来创建类常量。 static final String str="1";多了final就str就由变量变成了的常量。
*final方法:final修饰的方法,称为最终方法即类中的Final方法可以被子类继承,但是不能被子类修改。。最终方法不可被子类重新定义,即不可被覆盖,声明final方法的主要目的是防止该方法的内容被修改。
*final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。
abstract *抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
一个类不能同时被abstract和final修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。
抽象类可以包含抽象方法和非抽象方法。
*抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成final和static。
transient 当对象被持久化时(例如写入数据库),该成员变量的值不需要保存
任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。
抽象方法的声明以分号结尾,例如:public abstract sample();
volatile 同步多线程访问的成员变量的值,以便使不同的线程总是得到 该成员变量的同一个值。
4.数组的两种常用定义方式:*type[] 变量名 = new type[数组中元素的个数];声明数组类型
*type[] 变量名 = new type[]{逗号分隔的初始化值};定义时直接初始化
问题:
1.一个子类可以有多个父类吗?
不可以,java中是单继承
2.java中通过继承关系的方法调用与调用public类方法有什么实质性差别?
继承的便是自己的,“财产多”,调用的还是别人的。(希望补充)
Java课程:1.Java语法基础