• 面对对象


    1.每个类都有各自的特征
     从现实中抽象出类分三步:
      1.找出它的种类
      2.找出它的属性
      3.找出它的行为

    2.
    //发现类
    class Dog{
     //发现类的属性
     string name="旺财";
     int health=100;//健康值
     int love=0;//亲密度
     String strain="拉布拉多犬";//品种
    }
    //发现类的方法
    pubic void print(){
     //输出狗信息代码
    }

    规范:
     类名,属性名,方法名及常量名的命名规范如下:
     1.类名由一个或几个单词组成,每个单词的第一个字母大写,如Dog,StringBuffer
     2.属性名和方法名由一个或几个单词组成,第一个单词首字母小写,其他单词首字母大写,如health,stuName,println(),getMassage();
     3.常量名由一个或几个单词组成,所有字母大写,如PI,SEX_MALE。

    3.构造方法和重载
     作用:给成员属性默认赋予初始值
     构造方法:
      访问修饰符  构造方法名—与类名相同(){
    //初始化代码
    }
     如果没有返回值类型,当类实例化时,系统会自动默认分配一个无参构造
     当自定义构造方法时,系统不再提供默认无参构造方法

     有参构造就是在无参构造的基础上在小括号内加了参数。

    ---this关键字是对一个对象的默认引用,这里用以区分同名成员变量

    方法名相同,参数列表不同,这称为构造方法的重载。

    方法重载的判断依据如下:
     1.必须在同一个类里
     2.方法名相同
     3参数列表(方法参数的个数或参数类型)不同
     4.与方法返回值和方法修饰符没有任何关系
    在使用this调用自身的其他构造方法时,只能作为第一条语句

    -------类图
    类图的好处:
     清晰,直观,方便程序的开发和设计

    static修饰变量的叫做静态变量  或者  类变量
    普通变量叫做:实例变量  普通成员变量
    static修饰方法叫做静态方法
    用static修饰的属性或方法,可以直接通过类名来访问,无需new出实例里对象
    用final修饰的变量称为常量,其值固定不变
    例:
    static final string NAME="房上的猫";
    final:常量关键字(规范:变量名大写)
    静态调用:
    1.实例化对象  对象.静态方法();对象.静态属性;
    2.类名.属性;类名.方法();
    静态代码块:只能给static的属性赋值
    static{

    }
    注意:代码块作用是在给静态属性赋予初始值使用的,永远都比构造方法先执行一步

    普通属性:实例变量
    在程序中任何变量或者代码都是在 编译时 由系统自动分配内存来存储的
    静态属性:类变量
    所谓静态就是指在编译后所分配的内存会一直存在   直到程序退出 内存才会释放这个空间,也就是只要程序运行,那么这块内存就会一直存在
    static的方法有以下几条限制:
    它们仅能调再其他的static方法。
    它们只能访问static数据

    4.static修饰符

    static可以用来修饰属性,方法和代码块。static修饰的变量属于这个类所有,即由这个类创建的所有对象共用一个static变量。通常把static修饰的属性和方法称为类属性(类变量)和类方法。不使用static修饰的属性和方法属于单个对象,通常称为实例属性(实例变量)和实例方法。使用static修饰方法的最常见的例子是我们熟悉的main()方法。
     1.在加载类的过程中,完成静态变量的内存分配,再执行静态块,两者是在创建对象之前执行的。
     2.类属性和类方法可以通过类名和对象名访问,实例属性和实例方法只能通过对象名访问
     3.类方法只能访问类属性和其他类方法。
     注意:静态方法中不能使用this和super关键字。
    另外,在使用常量时,为了方便调用,可以用static来修饰,并且建议采取此种方法。例如:
    static final String SEX_MALE="Q仔";
    在使用时可以直接通过类名,SEX_MALE方式使用。这时称这个常量为静态常量。
    5.常见错误:
     1.在类中可以定义static变量,在方法里是否可以定义static变量?
     答:在方法里不可以定义static变量,也就是说,类变量不能是局部变量。
     2.若给构造方法加上返回值类型,则会出现什么情况?
     答:构造方法没有返回值类型。如果有,则不是构造方法,而是和构造方法同名的成员方法。
    6.使用封装优化电子宠物系统的类
    采用private修饰符的变量不能在类外部访问,而通过public修饰的setter和getter方法访问;通过在setter方法中编写相应存取控制语句可以避免出现不符合实际需求的赋值。

    封装是面向对象的三大特性之一,就是将类的状态信息隐藏在类内部,不允许外部程序直接访问,而通过该类提供的方法来实现对隐藏信息的操作和访问。

    封装的具体步骤:修改属性的可见性来限制对属性的访问;为每个属性创建一对赋值方法和取值方法,用于对这些属性的存取;在赋值方法中,加入对属性的存取控制语句。

     1.修改属性的可见性>>>>>设为private
     2.创建共有的getter和setter方法>>>>>用于属性的读写
     3.在getter和setter方法中加入属性控制语句>>>>>对属性值的合法性进行判断

     封装的快捷键:Shift+Alt+S+R

    封装的好处:隐藏类的实现细节;让使用者只能通过程序规定的方法来访问数据;可以方便加入存取控制语句,限制不合理操作。

     1.隐藏类的实现细节
     2.方便加入控制语句
     3.方便修改实现
     4.只能通过规定方法访问数据

    封装时会用到多个权限控制符来修饰成员变量和方法,区别如下:
     1.private:成员变量和方法只能在其定义的类中被访问,具有类可见性。
     2.默认:成员变量和方法只能被同一个包里的类访问,具有包可见性。
     3.protected:可以被同一个包中的类访问,被同一个项目中不同包中的子类访问。
     4.public:可以被同一个项目中的所有类访问,具有项目可见性,这是最大的访问权限

    Ctrl+1  代码自动修正
    静态代码块作用:给比较复杂的静态成员赋值

  • 相关阅读:
    BMC手册—具体工作内容。——在Agent中修改配置文件添加ping监控
    BMC手册—具体工作内容。——在PATROL Central控制台中添加Linux监控oracle的添加
    jetbrains 系列博客https://zhile.io/
    NavicatPremium15破解方法
    fastjson转换json字符串key的首字母小写变大写的解决办法
    Linux系统时间同步方法小结
    java同步/设置Linux系统时间
    Java代码获取NTP服务器时间
    IDEA2019 3.3 IDEA缓存和浏览缓存清除和设置
    一张图彻底搞懂MySQL的 explain
  • 原文地址:https://www.cnblogs.com/fl72/p/8482808.html
Copyright © 2020-2023  润新知