面向对象上(知识点1)

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()就不知道具体应该调用哪一个了

猜你喜欢

转载自blog.csdn.net/weixin_35110513/article/details/80262814