Java面向对象(2)

一.this关键字

1.this关键字表示当前对象

2.用法

              ①可以使用this关键字引用成员变量。

              ②可以引用成员方法或者构造方法。

在类中的某个构造方法中,可以使用this关键字去调用另一个构造方法。

格式:(不需要去使用this+.)

this("aa",22,"男")

 3.作用

                用来区分成员变量和局部变量。

二.static关键字

1.static 静态的 

可以修饰类的成员变量,成员方法,代码块,内部类。

静态成员不依赖于类的实例,被类的所有实例共享,被static修饰的成员变量不用通过对象来访问,只要类被加载,静态成员就会被类加载创建。

静态成员的调用要通过类名.静态变量,静态成员是类没有关系的。

2.特点

              ①随着类的加载而加载

              ②优先于对象存在

              ③修饰的成员被所有对象共享

              ④可以不创建对象,直接通过类名调用静态成员

注意:一般情况下将所有对象中所相同的变量设置为静态的。

           与类中属性无关/没有用到任何非静态成员变量 的方法可以设置为静态方法。

在静态方法中,只能去调用静态的成员变量。

this是有关于类的,静态方法是不能够使用this关键字的。

三.代码块

1.代码块就是在类中声明一个没有名字的代码块。{  //符合语法的任何Java语句  }

2.代码块分为:①实例代码块:在每次创建对象时自动调用。

                         ②静态代码块:因为是静态的,所以在类被加载的时候静态代码块会自动执行。                                                       运行类中的main方法,访问类中的成员变量,静态成员方法,创                                                     建类的对象时就会自动执行。                             

                           格式:static{   //符合语法的任何Java语句  }

3.代码块可以有多个。

eg:

public class dmk {
    static int number=0;
    {
        System.out.println("代码块1");
    }
    {
        System.out.println("代码块2");
    }
    static{
        System.out.println("静态代码块1");
    }
    static{
        System.out.println("静态代码块2");
    }
}
public class dmkTest {
    public static void main(String[] args) {
        int number = dmk.number;
        System.out.println(number);
        dmk d1=new dmk();
        dmk d2=new dmk();
    }
}

运行结果为:

静态代码块1
静态代码块2
0
代码块1
代码块2
代码块1
代码块2

四.包

1.问题

在编写Java程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序很麻烦,而且会出现同名类。

所以,为了解决上述问题,Java就引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类管理等问题。

使用package关键字修饰包。

在包名中,可以通过 . 去区分包的等级。

2.命名

命名规范:一般是小写,目前至少要有三级包

第一级:指该项目的类型。eg:com,org,gov,deu等

第二级:指公司所开发或者运行的公司名称。eg:baidu,oracle,sun,huawei等

第三级:指项目的名称。eg:oa,cms,erp等

第四级:指项目模块的名称。eg:bean,action,exception

3.包的作用

①按照不同功能管理类

②避免类重名

③控制访问权限

注意:在一个类中,使用了另一个包中的类,就必须通过import去导包。

           使用本包中的类以及java.long包中的类是不需要导包的。

如果import导进来的包中都有Car()构造方法,想要去new  import没有导进来的包中的对象时,必须去使用全类名进行new对象。

全类名=包名+类名。

五.访问权限

访问权限修饰符

1.public:公共权限,可以修饰类,成员变量,成员方法,内部类。

2.protected:受保护权限,在其他包中无法调用,可以在本包的其他类中调用。注意:protected                          还可以在其他包的子类中被调用。

3.(default):默认权限  在其他包中无法调用,可以在本包的其他类中调用。

4.private:私有权限 在本包的其它类中就无法访问,只能在本类中被调用。

你可能感兴趣的:(java,开发语言)