1. 类修饰符:public, final,abstract,类名每个单词的首字母大写
2. 成员变量的修饰符: public, protected, private, static, final (前三个修饰符只能出现其中之一),在定义成员变量的同时可以有默认值,成员变量名通常第一单词首字母小写,后面每个单词的首字母大写
3. 方法的修饰符:public ,protected,private,static,final,abstract(前三个修饰符只能出现其中之一,final和abstract只能出现其中之一),方法名通常用动词开头,比如doSomething
4. 构造器的修饰符:public ,private,protected(三者只能出现其一),构造器不能定义返回值类型,如果你使用了返回值类型,那么这就不再是构造器方法,而是普通的方法。
科普:其实构造器是有返回值的,他返回的是该类的实例,但是不要在构造器里显示地使用return来返回当前类的对象,构造器的返回值是隐式的。
-----------------------------------------------------------------------------------------------------------------
5. 对象的this引用
两层含义:
构造器——代表该构造器正在初始化的对象
方法中——代表正在调用该方法的对象
Person p=new Person();//产生了两个东西,一个是p引用变量,一个是Person对象
科普:
- 调用static修饰的成员时,如果省略了主调,默认使用该类作为主调,static修饰的方法中不能使用this引用
- 调用非static修饰的成员时,如果省略了主调,默认是this
- 当方法中出现和成员变量同名的局部变量时,则必须使用this作为前缀才可以访问方法的成员变量
-----------------------------------------------------------------------------------------------------------------
6.方法的参数传递机制:Java里面都是值传递。swap实例的内存图,详细看书。
7.形参个数可变的方法:处理上当初数组进行处理
比较:public static void test(String... books);//test("a","b")或者test(new String[]{"a","b"})都是可以的
public static void test (String[] books);//test(new String[]{"a","b"})
- 个数可变的形参只能处于形参列表的最后,一个方法当中最多只能有一个个数可变的形参
-----------------------------------------------------------------------------------------------------------------
8.方法的重载:只表现在参数上
注意:不推荐重载形参个数可变的方法
例1:
public void test(String msg);//(1) public void test(String... msg);//(2)
对于这样的几种调用:
test()//调用法2
test("a","b")//2
test("a")//1
test(new String[]{"a"})//2
例2:为什么不可以用返回值来重载
public int f(); public void f();对于int res=f()可以知道调用的是第一个,但是对于f()就不知道具体应该调用哪一个了