zoukankan      html  css  js  c++  java
  • Java面向对象(二)

    一.封装

    1、为什么要使用封装
    在类的外部直接操作类的属性是”不安全的"
    2、如何实现封装
       1)、属性私有化:设置属性的修饰符为private
        2) 、提供公共的set和get方法
    赋值的方法:setter:   public void setXXX(参数){} XXX:与属性名相同,把属性名的第一个字母改为大写
        参数:与属性的类型一致
    取值的方法:getter: public 返回值类型  getXXX(){} 返回值的类型与属性的类型一致
       3) 、在set方法中添加程序流程控制语句

     1 private String sex;
     2 //set方法
     3 public void setSex(String _sex){
     4    if("男".equals(_sex)||"女".equals(_sex)){
     5       sex = _sex;
     6    }else{
     7       System.out.println("输入性别有误,仅为男或女!");
     8    }
     9 }
    10 //get方法
    11 public String getSex(){
    12    return sex;
    13 }

    3、使用封装的好处
    封装属性,暴露公共的访问方法,提高数据的安全性
    同时方便修改和维护

    二.构造方法

    1、构造方法的语法
       访问修饰符  构造方法名(参数列表){
           方法体;
       }
    2、构造方法的特点

    1)、构造方法名必须与类名相同
    2) 、构造方法没有返回值类型,也不写void. 如果写了void不再是构造方法,而是成员方法

    3、构造方法的分类

    1)、默认构造方法,如果类中没有定义构造方法,则在运行时系统提供一个公共的无参的构造方法。 public Student(){}
    2)、显示构造方法:在类定义的构造方法。此时系统不再提供公共的无参的构造方法。建议在类显示定义无参的构造方法
    4、构造方法何时调用?
    在创建对象时,与new关键词一起使用。每个对象仅调用一次
    5、构造方法的作用
    初始化属性的值。
    6、构造方法可以重载吗?
    可以。

    三.参数传递

    1.按值传递

    基本类型之间传参是按值传递,形参与实参是两个独立的空间。形参的改变不影响实参的值

    2.按地址传递

    引用类型之间传参是按“地址"传递,实参传递给形参的是实参所引用对象的”地址".形参与实参引用同一“地址"的对象。
    形参改变对象的属性值,实参再访问对象时,为改变后的值。

    四.this关键字与static关键字

    4.1、this是什么?
    this是一个引用。在对象的内部引用当前对象。存放的是当前对象的”地址"
    4.2、this可以访问哪些成员
        4.2.1 成员变量
        4.2.2 成员方法
        4.2.3 构造方法
    4.3、this在哪里使用? 
        4.3.1、在类成员方法使用:  区分成员变量与同名的局部变量.this.成员变量
        4.3.2、在类成员方法中,访问其他成员方法 : this.成员方法名()
        4.3.3、在类的某个构造方法中,调用类的其他构造方法 :this(参数). 一定写在构造方法的有效代码的"第一行"

    好处:实现代码的重用

    static:静止的,不变的
    1、 修饰属性:静态属性。属于类所有。所有的对象共享
    访问方式:  类名.静态属性名
    static声明的变量会放在方法区中,static声明的变量只初始化一次,加载类的时候初始化,
    如果多个静态变量,会按照静态变量在类中的顺序进行初始化

    2、修饰方法  :静态方法
    访问方式:类名.静态方法

    1)、与成员方法的区别:
    a、 成员方法属于对象所有,
    成员方法中可以访问成员变量,其他成员方法,静态变量,静态方法,可以使用this关键词
    b、静态方法属于类所有,与对象无关。
    静态方法中仅可以访问静态变量,静态方法,
    不可以直接访问成员变量,成员方法。可以创建对象间接的访问
    不可以使用this关键词

    3、修饰代码块:在类加载时执行,仅执行一次
    语法 : static{ }
    1)、与实例代码块的区别:
    a、静态代码块在类加载时执行,仅执行一次
    b、实例代码块,每创建一个对象执行一次,在构造方法前执行

    4、修饰内部类: 静态内部类

    5、注意不能修饰局部变量

  • 相关阅读:
    delphi 滚屏
    delphi Sender和Tag的用法
    delphi res 字符串资源
    delphi queryCommandState
    net图片转格式
    递归数据树结构
    C# winform文件批量转编码 选择文件夹
    SQL可重复执行语句,增删改字段、表、修改默认值
    WEBAPI测试
    调用webservice
  • 原文地址:https://www.cnblogs.com/wangzhengyu/p/8532246.html
Copyright © 2011-2022 走看看