面向对象之封装

  面向对象的三大特征:封装、继承、多态

  封装:

    包装:

      1.方便携带--->访问方便

      2.保护性

      3.安全性

  封装可以认为是一个保护屏障,防止该类的代码和数据被其他类随意的访问,如果要访问该数据,必须通过指定的方式;

  适当的封装可以让你的代码更容易理解和维护,也加强了代码的安全性。

  狭义的封装一般是把类中的成员变量隐藏起来,如果需要访问某个隐藏的成员变量,提供公共方法对其访问。

  广义的封装范围包罗万象。

  

  封装的步骤:

    1.使用权限修饰符private(私有的,私人的,自己的),private修饰类中的成员变量,此时类中的成员变量就隐藏起来了;

    2.提供对应的一对getXxx()方法和setXxx()方法  Xxx-->成员变量名(首字母大写)

  private的含义:

      1.private可以修饰成员变量和成员方法。

      2.private是一个权限修饰符,代表的是最小的权限。

      3.被private修饰后的成员变量和成员方法,只能在本类中访问。

  成员变量:

    1.如果没有手动进行赋值,系统会自动进行赋值(默认值);

    2.成员变量不同的数据类型进行初始化赋值是不同的;

      整型(byte short int long)--->0

      浮点型(float double)  --->0.0

      字符型(char)      --->空格"u0000"

      布尔型(boolean)     --->false

      引用类型(类,String,接口)--->null

  封装优化1--->this关键字

    this代表所在类的当前对象的引用(地址值),即对象自己的引用;

    备注:方法被那个对象调用,方法中的this就代表那个对象,即谁调用,this就指代谁。

      1.就近原则

    this的使用格式:

      this.成员信息名

      通常使用this修饰方法中的变量,解决成员变量被隐藏的问题。

  封装优化2---构造方法

    构造方法的两个作用:

        1.进行对象的创建

        2.用来初始化对象中的成员变量信息

  当一个对象被创建出来的时候,构造方法用来初始化该对象,给对象的成员变量赋值。

  备注:
    当一个类被定义出来的时候,系统会自动给你一个构造方法,是一个没有参数的构造方法
    但是如果在类中自定义带参数的构造方法后,那么就会覆盖掉系统默认提供的无参数的构造方法。
  构造方法定义格式:
    修饰符 构造方法名(参数列表){
        //方法体
        ......
        
    }
  构造方法名与它所在的类名相同,它没有返回值。
  方法的重载:
  方法的重写:
  标准代码----JavaBean
    JavaBean 是Java语言编写类的一中标准规范,符合Java标准类,要求类必须是具体的和公共的,并且具有无参数的构造方法,

    提供用来操作成员变量的set和get方法
    成员变量是私有的,set和get方法是公共的。
   
    JavaBean标准类
        public class ClassName{
        
            //成员变量
            //构造方法
            //无参的构造方法(必须)
            //有参的构造方法(建议)
            //成员方法
            //getXxx()
            //setXxx()
            
      
  容器:
      将多个数据存储到一起每个数据成为该容器的元素。
  数组:
      存储数据长度固定的容器,需要保证多个数据的数据类型要一致。
  数组定义:
    方式一:推荐使用
        格式:数组存储的数据类型[] 数组名字 = new 数组存储的数据类型 [长度];
        如:定义一个长度为5的整形数组    int[] arr = new int[5];
          定义一个长度为10的字符串数组 String[] arr = new String[10];
    方式二:    
        格式:数组存储的数据类型[]    数组名称 = {元素1,元素2,元素3,......};
        如:定义一个存储张三 李四 王五 赵六字符串的数组容器
            String[] arr = {"张三","李四","王五","赵六"};
    方式三:
        格式:数组存储的数据类型[] 数组名称 = new 数组存储的数据类型[]{元素1,元素2,元素3,......};
        如:定义一个存储10,20,30,40的整型数组容器
            int[] arr = new int[]{10,20,30,40}
  备注:数组有定长特性,长度一旦指定,不可更改。

  数组的访问:
     索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号成为数组的索引(index)
        可以通过数组的索引访问数组中的元素。索引不重复唯一            
    格式:
        数组名[索引]
        如: String[] arr = {"张三","李四","王五","赵六"};
        0--代表的就是数组中的第一个元素,1---代表的数组中的第二个元素,以此类推。。
            李四 = arr[1]
            赵六 = arr[3]
    数组的长度属性:每个数组都具有长度,而且是固定的
        格式:
            数组名.length
    获取数组的最大索引值:数组名.length-1
        String arr = {};//
    给数组中的索引对应的位置赋值:
        arr[index] = 值;
        
    数组遍历:【重点】
        数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。遍历是数组操作中的最重要的一环。
   

      

原文地址:https://www.cnblogs.com/lk625/p/13887619.html