• 面向对象 “上”


      1, 什么是面向对象, 什么是面向过程 ?

    面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
    例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,
    4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。

    2,类, 对象, 成员变量(属性,静态属性), 成员方法(方法, 动态属性), 局部变量分别的含义 ?
    类变量(也叫静态变量):是类中独立于方法之外的变量,用static 修饰。
    (static表示“全局的”、“静态的”,用来修饰成员变量和成员方法,或静态代码块
    (静态代码块独立于类成员,jvm加载类时会执行静态代码块,每个代码块只执行一次,按顺序执行))。

       3, 面向对象的特点有什么 ?
       封装
        private(public)
       继承

       多态

    
    

    4, 如何在程序中创建一个对象 ?(首先要定义一个类)
    类名 变量名 = new 类名();

    
    

    类体
    成员变量的作用范围(整个类)

    类和类之间的关系
    关联关系(不好下一个定义描述关联关系, 比较弱的关系)
    一个类中的某个方法的参数是另一个类的对象
    一个类中的成员变量是另一个类的对象
    *继承关系(extends关键字)
    什么是一种什么
    运动员
    篮球运动员
    足球运动员
    聚合关系
    聚集
    球队->队长
    组合
    一个类的组成部分是必不可少的
    *实现关系(接口)(实现关系是一种特殊的继承关系)
    机器人:


    5, 成员变量在类中是如何初始化的 ?
    byte 0
    short 0
    int 0
    long 0L
    float 0.0F
    double 0.0D
    boolean false
    char '/u0000'
    引用类型 null
    (所有的类, 所有的接口, 所有的数组)

    
    

    6, 如何更好的设计一个类 ?
    合适的方法出现在合适的类里面
    7, 什么是类的封装 ?
    private关键字修饰的成员变量, 只能在当前类中使用
    8, 什么叫构造方法 ? 构造方法的重载 ? // 方法名相同, 参数列表不同
    构造方法:
    就是用来构造一个对象的方法
    1, 构造方法没有返回值, 没有返回值也不能写void
    2, 构造方法名与类名一模一样
    3, 定义一个类的时候, 如果没有写任意的一个构造方法, 则默认生成一个空参的构造方法
    4, 当一个类中有定义的带参数的构造方法的时候, 则空参的构造方法会消失(如果想使用空参的构造方法, 必须显式的写出来)
    练习: 封装一个Student类
    姓名 String
    年龄 int
    语文分数 double
    数学分数 double
    方法: 显示姓名, 年龄, 总分, 平均分
    // 分别以set方法和构造方法赋值




    9, this关键字代表的含义是 ? 该如何使用
    this关键字: 当前对象的引用
    大多数情况用来解决传入的参数和成员变量重名的现象
    可以通过this关键字来调用当前类中的其他的构造方法this();
    10, static关键字代表的含义是 ? 该如何使用 ?
    static: 静态的, 可以修饰变量(成员变量, 方法, 类)
    修饰变量:
    static修饰的变量不存在于栈空间和堆空间, 存在于数据区
    不管实例化多少个对象, 所有的对象都共享一份
    static修饰的变量在访问的时候不需要实例化, 直接拿类名去点出来

    
    

    修饰方法:
    用途, 做一些工具类的使用
    因为不需要实例化, 使用起来比较方便
    注意:
    static修饰的方法不能访问非静态成员!!!
    11, 单例模式介绍

    
    
    public class Car {
    	
    	private String driver;
    	
    	// private static Car car = new Car(); // 饿汉式
    	private static Car car;
    	
    	private Car() {
    		
    	}
    	
    	public static Car getCar() {
    		if (car == null) {
    			car = new Car(); // 懒汉式
    		}
    		return car;
    	}
    	
    	public String getDriver() {
    		return driver;
    	}
    
    	public void setDriver(String driver) {
    		this.driver = driver;
    	}
    }
    
    
    

      

    public static void main(String[] args) {
    		
    		Car car = Car.getCar();
    		System.out.println(car);
    		car.setDriver("小明");
    		
    		Car car2 = Car.getCar();
    		System.out.println(car2.getDriver());

          }

              public static void m() {}

    }

      

     
  • 相关阅读:
    让你的App飞一会
    Event in Backbone
    Event in Zepto
    【不怕坑】之 Node.js加密 C#解密
    结对项目:日程管理(四)
    结对项目:日程管理(三)
    结对项目:日程管理(二)
    结对项目:日程管理(一)
    当代大学生的痛点
    软件需求分析
  • 原文地址:https://www.cnblogs.com/cy960202/p/8991284.html
Copyright © 2020-2023  润新知