scjp第一章学习总结
- 变量命名规则
- 第一个字符只能以$、_或是英文字母开头
- 第二个字符起之后可以是$、_、英文字母或数字任意组合,长度没有限制
- 开发时变量应遵循的命名规范(驼峰命名法)
- 变量是以英文字母的小写开头,之后每个单词的第一个字母大写
- 常量使用大写英文单词命名,使用下划线将单词分隔,如
public static final STUDENT_NUM = 40;
- 尽量起有意义的变量名,如统计人数的变量可以是
int countPersonNum;
,而不是int i;
有效规范变量命名:
String myName = "Jack";
int _id = 11;
int _init_ = 0;
Proxy $proxy1 = new Proxy();
无效变量命名:
String #myName = "Jack"; // 第一个字符只能是$、_或英文字母
int 123id = 11; // 同上
- 普通方法命名规范(驼峰命名法)
- 方法的定义规则
访问修饰符 返回值类型 方法名(参数类型 参数名,...){
}
其中修饰符可选,构造参数没有返回值类型,方法名遵循驼峰命名法并使用有意义命名,参数列表可选,需要声明参数的类型。
/**
* 普通方法
*/
public int getPersonId(Person person){
...
}
// 构造方法
Person(){
...
}
Person(int id, String name){
...
}
- 普通类、抽象类、接口的区别
- 类的创建方式:
访问修饰符 class 类名{}
,其中访问修饰符是可选的,一个.java文件中可以有多个类,但是只允许有一个公共类,即被public修饰的类,并且当有公共类时.java文件命名和该类同名 - 抽象类的创建方式:
访问修饰符 abstract class 类名{}
,其中访问修饰符时可选的,默认、protected或public,因为抽象类无法进行实例化,其中的方法需要通过子类实现才能使用,private修饰类将导致类无法访问,即该类测出现就没有意义了。 - 接口的创建方式:
访问修饰符 interface 接口名{}
,其中访问修饰符根据jdk的版本,要求也不同通常是public。 - 类和接口的命名规范:第一个字母大写,遵循驼峰命名法
public class Person{
...
}
public abstract class DefaultPersonDao{
...
}
public interface IPersonDao{
...
}
- 抽象类和接口的相同和区别
相同点
1、都无法被实例化
不同点(最新版jdk)
1、接口中的变量只能是`public static final`的,抽象类可以定义任意类型的变量
2、接口中不含有实例变量,抽象类中可以含有实例变量
3、接口中的方法没有protected权限,抽象类中有
- 访问权限修饰符的理解
- 想操作一个对象,需要先看对象类的访问权限,只有拥有类的访问权限,才能访问到类内部的成员变量和成员方法
- 默认访问权限和3个访问修饰符
默认权限:default 包权限,只有在同一个包下的类才能进行访问
访问修饰符:
1、public 公共权限,任意包下的任何类都能访问
2、protected 保护权限,仅能被同一个包下的类或是子类访问
3、private 不能够被外界访问,只能在类内部进行操作
- 重点理解和区别:default和protected
//例子
//a包下的类A
package a;
public class A{
protected int ageA;
String name;
...
}
//b包下的类B
package b;
public class B{
protected int ageB;
...
}
//c包下的类C
package c;
public class C extends A{
public static void main(String[] agrs){
A a = new A();
System.out.printf(a.ageA);// 运行报错,不同包下无法使用"."操作符访问protected权限的成员变量
B b = new B();
System.out.printf(b.ageB);// 运行报错,同上
C c = new C();
System.out.printf(c.ageA);// 此时可以成功访问到ageA这个属性,但是这里通过继承进行访问的,而不是简单的"."访问
System.out.printf(c.name);// 运行报错,default权限进能够被同一个包下的类访问
}
}
- 几个特殊的修饰符的作用
final 被修饰的变量不可二次赋值,被修饰的方法不可被重写,被修饰的类不可被继承
static 修饰的变量为类成员,修饰的方法为类方法,通常和final配合使用声明常量
strictfp 修饰一个类或方法表示其遵循IEEE 754算术规范
- 个人感悟
温故而知新,对访问权限修饰符有了新的认识。