zoukankan      html  css  js  c++  java
  • 面向对象

    面向过程和面向对象思想对比

    面向过程(POP):是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的

    面向对象(OOP):是一种以对象为中心的编程思想,通过指挥对象实现具体的功能

    类和对象的关系

    1.类是一组具有共同属性和行为的事物的抽象

    属性:事物具备的各个特征,例如手机这个事物的特征(品牌,价格..)

    行为:事物能执行的操作,例如(打电话,发短信)

    public class Phone { //Phone就是一个类,手机类
        private String breed; // 品牌和价格是属性
        private int price; // 成员变量 (在类中方法外)
        public Phone() { // 无参构造
        } // 1.方法名与类名相同,大小写一致
        /* private是一个权限修饰符,可以修饰成员(成员变量和成员方法),被private修饰的成员只能在本类中才能访问 */
        public Phone(String breed, int price) { // 有参构造 
            this.breed = breed; // 2.没有返回值类型,没有void
            this.price = price; // 局部变量(方法中)
        } // 3.没有具体的返回值(不能由return带回结果数据)
    
        public String getBreed() {
            return breed;
        }
    
        public void setBreed(String breed) {
            this.breed = breed;
        }
    
        public int getPrice() {
            return price;
        }
    
        public void setPrice(int price) {
            this.price = price;
        }
    
        public void call(String mom) { // 打电话和发短信就是行为
            System.out.println("常给" + mom + "打电话");
        }
    
        public void sendMessage() {
            System.out.println("过节和朋友们问个好"); // 成员方法(static关键字暂时不加)
        }
    }
    

    2.对象的理解

    对象代表客观存在的事物

    3.类和对象的关系理解

    类是模板,对象是实例

    在程序中需要先有类,才能创建出对象

    public class Apple {
        public static void main(String[] args) {
            // 创建对象的格式
            //类名 对象名 = new 类名();
            Phone apple = new Phone();
            // 成员变量的使用
            //对象名.变量名
            apple.setBreed("苹果");
            apple.setPrice(6000);
            //成员方法的使用
            //对象名.方法();
            apple.call("妈妈");
            apple.sendMessage();
        }
    }
    

    构造方法

    概述

    构建、创造对象的时候,所调用的方法。

    格式

    • 方法名与类名相同,大小写也要一致

    • 没有返回值类型,连void都没有

    • 没有具体的返回值(不能由return带回结果数据)

    构造方法的执行时机

    • 创建对象的时候调用,每创建一次对象,就会执行一次构造方法

    • 不能手动调用构造方法

    构造方法的作用

    本质作用是创建对象,但是也可以用于给对象的数据(属性)进行初始化

    构造方法创建注意事项

    • 如果没有定义构造方法,系统将给出一个默认的无参数构造方法

    • 如果定义了构造方法,系统将不再提供默认的构造方法

    构造方法的重载

    • 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

    推荐的使用方式

    • 无论是否使用,都手动书写无参数构造方法,和带参数构造方法

    垃圾回收

    当堆内存中,对象数组产生的地址,通过任何方式都不能被找到后,就会被判定为内存中的“垃圾”

    垃圾会被Java垃圾回收器,空闲的时候自动进行清理,但是仍然会有内存泄漏的现象

    成员变量和局部变量的区别

    private关键字

    private修饰的成员变量操作

    private修饰的成员变量,如果需要被其他类使用,提供相应的操作

    • 提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰

    • 提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰,并且可以在此方法中增加判断操作

    this关键字

    Java中当局部变量和成员变量名称一致时,Java会通过就近原则,使用局部变量

    概念

    代表所在类的对象引用

    作用

    可以调用本类的成员(变量,方法)

    注意

    方法被哪个对象调用,this就代表哪个对象

    封装(面向对象的三大特征之一)

    封装的体现

    • 属性私有化,并对外提供方法(方法内做判断)进行操作

    • 将代码抽取到方法中,这是对代码的一种封装

    • 将属性抽取到类当中,这是对数据的一种封装

    封装的好处

    • 提高了代码的安全性

    • 提高了代码的复用性

  • 相关阅读:
    【Linux】Vim编辑器-批量注释与反注释
    java_部署jar
    linux_UBUNTU 12.04 上使用 SQUID 架设HTTP正向代理服务器
    crawler_java应用集锦9:httpclient4.2.2的几个常用方法,登录之后访问页面问题,下载文件_设置代理
    linux_coom _ Linux文件比较,文本文件的交集、差集与求差
    linux_之sed用法
    算法-跑道与马-百度面试题
    《Python》常用内置模块
    《Python》内置方法进阶和常用模块
    《Python》反射、内置方法(__str__,__repr__)
  • 原文地址:https://www.cnblogs.com/tyrion4396/p/13356643.html
Copyright © 2011-2022 走看看