zoukankan      html  css  js  c++  java
  • 面向对象(一)-封装

    面向对象(一)

    面向对象-封装

    类声明格式

    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.数据名}

  • 相关阅读:
    逆向路由器固件之敏感信息泄露 Part2
    隐匿在iOS文件系统中的隐私信息
    使用Arduino模块实施无线信号的重放攻击
    逆向路由器固件之解包 Part1
    maven 多模块项目
    java中Map,List与Set的区别(转)
    mysql-开启慢查询&所有操作记录日志
    maven阿里云中央仓库
    yii2 RESTful api的详细使用
    Yii2 基于RESTful架构的 advanced版API接口开发 配置、实现、测试 (转)
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/11967566.html
Copyright © 2011-2022 走看看