总是看到四种权限,这里做一个介绍:
最大权限是public,后面依次是protected,default,private
private修饰的只在本类可以使用
public是最大权限,可以跨包使用,不同包的子类和无关类都可以使用,可以修饰类,方法,成员变量
不写权限就是default默认权限:限于本包内使用
protected权限:跨包后的类如果有继承关系(子类),不能使用default修饰的,而可以使用protected修饰的,调用时候必须在子类的里面才可以调用父类的受保护权限,注意protected不能修饰类
日常开发用的只有:public、private
另外注意:
abstract不可以与static,private,final写在一起
关于代码块:
示例
public class Person { private String name; private int age; public Person(String name,int age){ this.age = age; this.name = name; System.out.println("构造方法"); } //构造代码块 { System.out.println("构造方法代码块"); } //静态代码块 static{ System.out.println("静态代码块"); } }
//静态代码块,只执行一次 //构造代码块,每次创建对象都会执行,优先于构造方法 public class Test { public static void main(String[] args) { Person person1 = new Person("张三", 18); Person person2 = new Person("李四", 18); } } /* 输出: 静态代码块 构造方法代码块 构造方法 构造方法代码块 构造方法 */
还有一些补充内容:
文档注释和生成jar包
随意写一个类
package demo; /** * @author dell * @version 1.0 */ public class Person { /** * * @param a * @param b * @return function */ public int function(int a, int b){ return a+b; } }
利用eclipse,选择工程,右键export里面有选择Java,里面有Javadoc等文件,
选择后会生成一套网页,相当于说明书,可以查看相关内容
也可以选择java的其他选项,生成jar包等
导入jar包方式:
通常是在工程目录下新建一个lib文件夹,放入jar包,右键build path -> add to build path,使用时候import就可以了
面向对象的补充:
1.类可以作为方法的参数传递,即方法的参数可以是一个对象,实质上是传递一个内存地址,在方法中进行对象的相关操作
2.和第一条类似,类也可以作为方法的返回值,即返回一个对象的引用
3.抽象类也可以作为方法的参数和返回值,区别在于:
抽象类没有对象,只能利用多态的特性传递(返回)抽象类的子类对象,注意接收返回值的时候类型必须是抽象类而不是子类
4.接口同样可以作为方法的参数和返回值:
接口也没有对象,必须传递接口的实现类对象,注意可以利用多态创建实现类对象也可以直接创建实现类对象,
同样,作为返回值的时候虽然传入的是实现类对象,但是接收的时候必须是接口类型
针对上面的补充内容写一个简单的案例来理解:
public abstract class Animal { public abstract void eat(); public static Animal getInstance(){ return new Cat(); } }
public class Cat extends Animal { public void eat(){ System.out.println("猫在吃"); } }
public class Test { public static void main(String[] args) { Animal a = Animal.getInstance(); a.eat();//输出:猫吃鱼 } }