zoukankan      html  css  js  c++  java
  • OOP ⑴

    1.面向对象

    类和对象的关系

    类是我们在生活中,对身边的一系列事物,进行的不自觉的分类!
    只是脑海中的一个印象! 在现实生活中,不存在!
    存在的是我们这个印象的具体反映!

    对象:用来描述客观事物的一个实体,由一组属性和方法构成!

    01.类是对象的模版
    02.对象是类的实例(具体)
    03.对象 和 类 满足 is a的关系
    04.每个对象都是独一无二的


    张三有年龄,身高,体重,性别
    李四有年龄,身高,体重,性别
    王五有年龄,身高,体重,性别

    01.上诉三个人我们称之为对象!
    02.上诉三个人都有相同的特征!这个特征我们称之为 对象的属性!

    张三能唱歌,跳舞,吃饭,睡觉
    李四能唱歌,跳舞,吃饭,睡觉
    王五能唱歌,跳舞,吃饭,睡觉
    01.上诉三个人能唱歌,跳舞,吃饭,睡觉,我们称之为对象的行为!
    02.上诉三个人都有相同的行为!我们在java中称之为 对象的方法!

    我们把有共同特征和行为的一些对象,封装成人类!

    ********************************************************************

    OOA(object oriented analysis) 面向对象分析

    OOD (object oriented design) 面向对象设计

    OOP (object oriented programming) 面向对象编程

    我们先根据需求
    01.按照面向对象的思想进行 OOA(面向对象分析),
    02.之后按照面向对象的思想进行 OOD(面向对象设计),
    03.最后按照面向对象的思想进行OOP (面向对象编程)。

    ********************************************************************
    面向对象的优势:
    01.与我们的思维习惯一致!
    02.提高了程序的可重用性!
    03.信息隐藏,提高程序的可维护性和安全性!


    面向对象的三大特性:
    01.封装
    02.继承
    03.多态


    访问权限的作用域:
    01.类
    02.方法
    03.属性

    访问权限访问修饰符:
    public 在任何包中的类 都能访问
    protected 只能在子类中访问,不管同不同包!
    private 仅限于本类中访问
    default (底层没有 ,不能显式的写入)

    以属性举例:
    01.如果属性
    int age;前面没有加访问修饰符!
    默认 只能在 本包中的其他类中访问此属性!

    02.如果是 private int age;
    仅限于本类中访问!

    03.如果是 protected int age;
    只能在子类中访问,不管同不同包!

    04.如果是 public int age;
    在任何包中的类 都能访问

    2.案例:

    01.学生类:

    ***************************************************

    public class Student {
    String name;//姓名
    int age;//年龄
    char sex;//性别
    public void show(){
    System.out.println("姓名:"+name);
    System.out.println("年龄:"+age);
    System.out.println("性别:"+sex);
    **************************************************

    public class StudentTest {

    /**
    * @param args
    */
    public static void main(String[] args) {
    Student stu1 = new Student();
    stu1.name = "张三";
    stu1.age = 25;
    stu1.sex = '男';
    stu1.show();

    }

    }

    ************************************************

    02.顾客类:

    *********************************************************

    public class Customer {

    /**
    * 输出客户可类型 积分
    * 金卡积分大于1000,回馈500
    * 普通卡积分大于5000,回馈500
    */
    String cardtype;//卡类型
    int points;//积分
    public void show(){
    Scanner input = new Scanner(System.in);
    System.out.println("请输入卡类型:");
    cardtype = input.next();
    System.out.println("请输入积分:");
    points = input.nextInt();
    System.out.println("积分:"+points+",卡类型:"+cardtype);
    }
    public void getPoints(){
    Scanner input = new Scanner(System.in);
    System.out.println("请输入卡类型:");
    cardtype = input.next();
    System.out.println("请输入积分:");
    points = input.nextInt();
    if(cardtype.equals("金卡")){//判断卡类型
    if(points>=1000){//判断积分是否满足回馈条件
    points = points + 500;
    System.out.println("回馈积分:500");
    System.out.println("积分:"+points+",卡类型:"+cardtype);
    }else{
    System.out.println("不满足积分回馈条件!");
    System.out.println("积分:"+points+",卡类型:"+cardtype);
    }
    }
    if(cardtype.equals("普通卡")){//判断卡类型
    if(points>=5000){//判断积分是否满足回馈条件
    points = points + 500;
    System.out.println("回馈积分:500");
    System.out.println("积分:"+points+",卡类型:"+cardtype);
    }else{
    System.out.println("不满足积分回馈条件!");
    System.out.println("积分:"+points+",卡类型:"+cardtype);
    }
    }

    }

    *********************************************************************

    public class CustomerTest {


    public static void main(String[] args) {
    Customer test = new Customer();
    test.show();
    System.out.println("*******************************");
    Customer test1 = new Customer();
    test1.getPoints();
    }

    }

    ****************************************************************

    03.管理员类:

    *****************************************************************

    public class Administrator {

    /**
    * 管理员 用户名密码
    * 用户名密码正确时可修改密码
    */
    String name;//用户名
    String passWord;//密码
    public void show(){//输出用户名密码
    System.out.println("用户名为:"+name);
    System.out.println("密码为:"+passWord);
    }
    Scanner input = new Scanner(System.in);
    public void getKey(){//修改密码
    boolean key = false;//循环条件初始值
    do{//do while循环来进行修改密码循环操作
    /**
    * 接收用户输入用户名密码
    */
    System.out.println("用户名:");
    name = input.next();
    System.out.println("密码:");
    passWord = input.next();
    /**
    * 判断用户输入是否正确,正确进入结构
    */
    if(name.equals("admin")&&passWord.equals("111111")){
    System.out.print("请输入新密码:");
    passWord = input.next();
    System.out.println("修改密码成功,新密码为"+passWord);
    key = true;//输入正确时循环条件为true,不再进入循环
    }else{//用户输入错误进入此结构
    System.out.println("用户名和密码不匹配,请重新输入");
    key = false;
    }
    }while(key==false);

    }

    }

    ******************************************************************

    public class AdministratorTest {


    public static void main(String[] args) {
    Administrator test = new Administrator();//创建第一个对象
    test.name = "admin1";//用户名
    test.passWord = "111111";//密码
    test.show();
    Administrator test2 = new Administrator();//创建第二个对象
    test2.name = "admin2";//用户名
    test2.passWord = "222222";//密码
    test2.show();
    System.out.println("*****************************************");
    Administrator test3 = new Administrator();//创建第三个对象
    test3.getKey();
    }

    }

  • 相关阅读:
    mysql安装
    Apache 403 错误解决方法-让别人可以访问你的服务器
    windows安装xampp时出现,unable to realloc xxxxxxxx bytes
    spring-mvc整合jquery cropper图片裁剪插件
    Android 贝塞尔曲线
    Android 桌面生成快捷方式
    Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to “*****”
    Android TextView 字符串展示不同大小文字
    Android 6.0权限问题
    Android 部分机型GridView四周默认间距
  • 原文地址:https://www.cnblogs.com/wwlw/p/7372139.html
Copyright © 2011-2022 走看看