面向对象(一)-封装

面向对象(一)

面向对象-封装

类声明格式

public class Student{
//访问修饰符+类修饰符+类名
    public String name;
    //类的属性
    //成员变量,全局变量
    //访问修饰符+数据类型+变量名
    public void info(){
    //访问修饰符+返回值+方法名
    //同类方法中,可以调用自身的属性
        this.name;
        //this:当前对象  
        //如果没有this,则遵循就近原则
    }
}

在main方法中调用

  1. new 对象/属性

    Student stu = new Student();
    //对象+对象名 = +实例化对象
  2. 赋值

    stu.name = "fr";
    //示例化对象.对象属性 = +属性值

    赋值由stu对象提出,通过'.'来连接。

  3. 对象数组赋值

Student [] stus = new Student[5];
stu[0] = new Student();
//或者
Student [] stus = {Student(),Student(),Student(),null,null}

 

构造方法

默认:

public 类名(){}
//该方法系统默认自带

特点:

  1. 无返回类型

  2. 方法名与类名相同

注意事项

  1. 在一个类中,java编译时先编译属性的值,在调用构造方法的值,也就是说,构造方法中如果有参数的赋值,其值会覆盖默认设定的初始值。

  2. 带参数的构造方法会覆盖不带参数的默认构造方法,如果写了带参数的构造方法,最好在写一个不带参数的构造方法

  3. 在构造方法中可以通过this来替代构造方法名,调取与其参数类型,个数,循序一致的构造方法(只限于本类中)

  4. 构造方法不可被重写、继承 ,以及被final修饰

  5. this()与super()必须放在构造方法的第一行

访问修饰符

修饰符 作用范围
private 私有 只能在本类中使用
default 默认 同包类比public,不同包有区别
protected 受保护的 不同包访问和public有区别,不同包的继承,与default有区别
public 公开 任意地方都能访问
  1. 值得注意的是private、default、protected在不同包下不相关的两个类之间是不能访问的!

final

  1. 修饰变量,变量为常量,必须赋予初始值,一般与static联用

    public static final 数据类型 大写的常量名
  2. 修饰方法,方法为最终方法,不可被重写。

  3. 修饰类,类为最终类,不可被继承

static

  1. 静态变量只有一个值

  2. 静态方法只能引用静态变量,不能引用非静态的(在内存中属于同一个区域才能引用)

  3. 静态变量放置在静态块中储存

  4. 静态属性属于整个类,只有一个值(属于调用它的整个类,而不是单独的对象)

    一般丁定义赋值是:类名.静态属性名

  5. 类的初始化,先初始静态的属性或方法

  6. 如果静态属性已经被赋予过值,那么在后续的new中不在创建(初始化过程只有一次)

  7. String = “ ”存储的值放在静态区

  8. static中不可使用this,super

  9. 静态不可操作非静态

静态块

格式:

static {
    
}

这个模块在类加载到虚拟机的时候调用,在构造方法执行之前

实体块/语句块

{
    
}

执行在静态之后

javabean-

数据的书写格式规范

javabean使用private定义属性,这使得该属性无法再不通包中访问。

为了解决,采用间接的方法,定义get、set方法。

  1. 只改 set数据名(类型 形参){} this. 数据名 = 形参;}

  2. 只读 get数据名(){return this.数据名}

posted @ 2019-12-01 20:41  是非_大道克己  阅读(208)  评论(0编辑  收藏  举报