总是看到四种权限,这里做一个介绍:
最大权限是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();//输出:猫吃鱼
}
}