zoukankan      html  css  js  c++  java
  • oop.1

    回顾:
    1.猜字符小游戏
    2.什么是类?什么是对象?
    1)现实世界是由很多很多对象组成的
    基于对象抽出了类
    2)对象是真正存在的单个的个体
    类代表一类个体,类型,类别
    3)类中包含:
    3.1)所有对象所共有的特征/属性---------变量
    3.2)所有对象所共有的行为----------------方法
    4)一个类可以创建多个对象
    同一个类的多个对象,结构相同,数据不同
    5)类是对象的模板,对象是类的具体的实例

    笔记:
    1.如何创建类?如何创建对象?
    2.引用类型之间画等号: 家门钥匙
    1)指向同一个对象(数据有一份)
    2)对其中一个引用的修改,会影响另外一个引用
    基本类型之间画等号: 身份征复印件
    1)赋值(数据有两份)
    2)对其中一个值的修改,不会影响另外一个值
    3.null:
    1)空,即:不再指向任何对象
    2)若引用的值为null,则不能再进行任何操作了
    若操作则NullPointerException(空指针异常)
    4.方法签名=方法名+参数列表
    5.方法的重载(overload):
    1)一个类中,方法名称相同,参数列表不同,称方法的重载
    2)编译器在编译时,自动根据方法的签名绑定调用不同的方法
    6.构造方法:
    1)给成员变量赋初值
    2)与类同名,没有返回值类型
    3)在创建(new)对象时被自动调用
    4)若自己不写构造,则系统默认提供一个无参构造
    若自己写构造,则不再默认提供
    5)构造方法可以重载
    7.this关键字:
    1)指代当前对象,哪个对象调指的就是哪个对象
    方法中访问成员变量,默认有个this.
    2)用法:
    2.1)this.成员变量名---------访问成员变量
    2.2)this.方法名()-------------调用方法(几乎不用)
    2.3)this()-----------------------调用构造方法


    任务:
    1.做Cell类的3个构造方法,并测试
    2.看Demo.java与OverloadDemo.java-----自己做小例子
    3.Cell和CellTest再做一次
    4.课后作业---第1天的全部,第2天的前两个做了
    5.每日一练


    Cell c = new Cell(2,5);
    c.drop();
    c.moveLeft(3);
    String str = c.getCellInfo();

    Cell c1 = new Cell(); //0,0
    Cell c2 = new Cell(3); //3,3
    Cell c3 = new Cell(2,5); //2,5


    class Cell{
    int row;
    int col;
    Cell(){
    this(0,0); //调用构造方法
    }
    Cell(int n){
    this(n,n); //调用构造方法
    }
    Cell(int row,int col){
    this.row=row;
    this.col=col;
    }
    void drop(){
    row++;
    }
    void moveLeft(int n){
    col-=n;
    }
    String getCellInfo(){
    return row+","+col;
    }
    }


    Cell c = new Cell();
    c.row = 2;
    c.col = 5;
    c.drop();

    Cell cc = new Cell();
    cc.row = 6;
    cc.col = 3;
    cc.drop();

    Cell ccc = new Cell();
    ccc.drop();


    Cell c = new Cell(2,5);
    c.drop();


    class Cell{
    int row; //成员变量
    int col;
    Cell(int row,int col){ //局部变量
    this.row = row; //c.row=2
    this.col = col; //c.col=5
    }
    void drop(){
    row++; //c.row++
    }
    }


    Student zs = new Student();
    Cell c = new Cell();

    //1.创建一个Student对象
    //2.调用构造方法
    Student zs = new Student("zhangsan",25,"河北廊坊");
    Student ls = new Student("lisi",26,"佳木斯");
    Student zs = new Student(); //编译错误

    class Student{
    String name;
    int age;
    String address;
    Student(){
    }
    //给成员变量赋初值---应用率非常高
    Student(String name1,int age1,String address1){
    name = name1;
    age = age1;
    address = address1;
    }
    }

    Student zs = new Student();
    zs.setInfo("zhangsan",25,"河北廊坊");

    Student ls = new Student();
    ls.setInfo("lisi",26,"黑龙江佳木斯");


    Student zs = new Student();
    zs.name = "zhangsan";
    zs.age = 25;
    zs.address = "河北廊坊";

    Student ls = new Student();
    ls.name = "lisi";
    ls.age = 26;
    ls.address = "黑龙江佳木斯";

    System.out.println("helloworld");
    System.out.println(250);
    System.out.println(8.88);
    System.out.println(true);
    System.out.println('a');
    System.out.println();

    1)找对象: 一堆小格子
    2)抽类: 格子类Cell
    3)设计类中的成员变量和方法
    4)创建对象、访问成员变量以及调用方法

    //new出来的是对象,对象是一个数据
    new Student();
    new Student();

    Student zs = new Student();
    Student ls = new Student();

    zs.name = "zhangsan";
    zs.age = 24;
    zs.address = "";


    类(类型) 引用类型变量(引用) 对象
    Student zs = new Student();
    对zs的操作就是对对象的操作


    面向对象:难(抽象)

    合理不合理----------------

    int num; //基本类型变量(变量)


    1)下落一格
    2)左移n格
    3)获取格子行号和列号

    Cell
    CellTest


    class Cell{
    int row; //行号
    int col; //列号
    void drop(){ //下落一格
    row++;
    }
    void moveLeft(int n){ //左移n格
    col-=n;
    }
    String getCellInfo(){ //获取格子行号和列号
    return row+","+col;
    }

    }


    变量分两种:
    1.局部变量: 方法中
    从声明开始,到包含它最近的大括号结束
    2.成员变量: 类中,方法外
    整个类


    class Aoo{
    int num;--------------成员变量
    void show(){
    int num2;-----------局部变量
    }
    }

  • 相关阅读:
    如何理解联合文件系统?
    Docker 学习笔记(一)
    Bzoj 3124: [Sdoi2013]直径 题解
    Bzoj 3131 [Sdoi2013]淘金 题解
    欧拉路(题目)
    硬币问题
    线段树、树状数组
    Splay树、Treap树
    模拟退火
    广搜题目(一本通)
  • 原文地址:https://www.cnblogs.com/xiaziteng/p/4719555.html
Copyright © 2011-2022 走看看