类:相同的东西放在一起
分为属性和动作;
把一组或多组事物相同的特性的描述==》类
 
属性和动作被称为成员:
//声明类的属性信息
public class **{
String name;
int age;
char sex;
}
//声明类的动作信息(要在属性信息里面)
public void eat(){
System.out.println("eating");
}
public void study(){
System.out.println("study");
}
public void playgame(){
System.out.println("playing");
}
类==》抽象化
类当中的个体才能进行实际的操作
 
抽象化过程
对象==》类
具象化过程
类==》对象
 
面向对象==面向具象化的类;
 
产生对象(主类中)
student student1 = new student();
给对象赋值(主类中)
student.name = "***";
 
构造器:
实例化的时候自己调用
构造器名字必须和类名一致,并且没有返回值类型;
 
static 静态的
类级别的属性 static int ***;
被static 修饰的方法叫静态方法 只能调用静态属性;
 
匿名对象 只能进行一次调用
this.代表当前类本身
 
java 对象也可以增删改查
调用方法可以调用自己 用来循环;
flage 开关;
public 公共的 共有
private 私有 仅自己访问
protected 子类和父类共有 外部禁止访问
extends 继承
将两个类共有的部分抽离出来 过程叫泛化
抽离出来的类叫父类 被抽离的类叫做子类
子类继承父类元素 使用 extends ;
从父类分到子类叫做特化;
所有类默认继承Object类;
一个类只能直接继承一个父类 ;
分为间接继承和直接继承 ;
间接继承继承父类的父类;
方法的复写 相当于扩展父类的成员;
有相同的属性时 显示子类的,父类将被覆盖;
除非声明调用父类;
先调用父类构造器,后调用子类构造器;
super()调用父类构造器,必须写在第一行;写在子类构造器里面;
 
instanceof (强转换时使用)判断是不是某个类;
复写规则:(子类)
一同两小一大
this ();调用在有参构造器中调用无参构造器 (必须写在第一行)
 
将其他类型转换成int;
如果有转换不了的报数字格式化异常
int ** = Integer.parseInt(***)
 
ArrayIndexOutofBoundsException
NumberFarmatException 数字格式化异常
 
异常捕获:
try{}catch(Exception e){}
String * = i+" ";转换成String型
 
饿汉模式
懒汉模式
final定义的变量变为常量;
下面做一个超市的管理系统:

import java.util.*;                          //调包
public class Main{                          //建一个主类
  static Scanner sc = new Scanner(System.in);
  static int i = 0;
  static Chaoshi[] shop = new Chaoshi[100];
  public static void main(String[] args){              //主入口
    menu();                           //调用菜单方法
  }
  public static void menu(){                    //定义一个菜单方法
    System.out.println("============================");
    System.out.println("》欢迎进入超市库存统计系统《");
    System.out.println("=》 请输入对应数字进行操作《");
    System.out.println("=======》 1,进货存储 《");
    System.out.println("=======》 2,修改信息 《");
    System.out.println("=======》 3,查询库存 《");
    System.out.println("=======》 4,退出操作系统 《");
    System.out.println("============================");
    int a = sc.nextInt();                      //用户输入
    switch (a){
      case 1:adds(); break;
      case 2:update(); break;
      case 3:select(); break;
      case 4:exit(); break;
      default:System.out.println("====输入有误,请重新输入====");
      menu();
      break;
    }
  }
  public static void adds(){                      //定义一个存货方法
    System.out.println("=========请输入货物名称=========");
    String sname = sc.next();
    System.out.println("=========请输入货物类型=========");
    String sclass = sc.next();
    System.out.println("=========请输入货物价格=========");
    String sprice = sc.next();
    System.out.println("=========请输入货物数量=========");
    String snum = sc.next();
    Chaoshi shop1 = new Chaoshi(sname,sclass,sprice,snum);
    shop[i] = shop1;
    i++;
    System.out.println("输入成功,继续输入(1),返回菜单(2)");
    int flage = sc.nextInt();
    if(flage==1){
      adds();
    }else menu();
  }
  public static void update(){                      //定义一个修改方法
    System.out.println("请输入商品名称,为您修改");
    String b = sc.next();
    for(i=0;i<100;i++){
      if(b.equals(shop[i].sname)){
        System.out.println("===================查询结果如下===================");
        shop[i].say();
        System.out.println("=========请输入修改后货物名称=========");
        String sname = sc.next();
        System.out.println("=========请输入修改后货物类型=========");
        String sclass = sc.next();
        System.out.println("=========请输入修改后货物价格=========");
        String sprice = sc.next();
        System.out.println("=========请输入修改后货物数量=========");
        String snum = sc.next();
        Chaoshi shop1 = new Chaoshi(sname,sclass,sprice,snum);
        shop[i] = shop1;
        System.out.println("继续修改(1),返回菜单(2)");
        int flage = sc.nextInt();
        if(flage==1){
          update();
        }else menu();
      }
    }
  }
  public static void select(){                      //定义一个查询方法
    System.out.println("指定查询(1),全部查询(2)");
    int a = sc.nextInt();
    if(a==1){
      System.out.println("请输入商品名称,为您查询");
      String b = sc.next();
      for(i=0;i<100;i++){
        if(b.equals(shop[i].sname)){
          System.out.println("===================查询结果如下===================");
          shop[i].say();
          System.out.println("继续查询(1),返回菜单(2)");
          int flage = sc.nextInt();
          if(flage==1){
            select();
          }else menu();
        }
      }
    }else{
      for(Chaoshi s:shop){
        if(s!=null){
        s.say();
        }
      }
      System.out.println("继续查询(1),返回菜单(2)");
      int flage = sc.nextInt();
       if(flage==1){
        select();
      }else menu();
    }
  }
  public static void exit(){                      //定义一个退出方法
  System.out.println("===》》》您已退出操作系统《《《===");
  System.exit(0);
  }
}

public class Chaoshi{                          //新建一个超市类
  String sname;
  String sclass;
  String sprice;
  String snum;
  public Chaoshi(String sname,String sclass,String sprice,String snum){
    this.sname = sname;
    this.sclass = sclass;
    this.sprice = sprice;
    this.snum = snum;
  }
  public void say(){
    System.out.println("名称:"+sname+"\n种类:"+sclass+"\n价格:"+sprice+"\n数量:"+snum+"\n");  //定义一个输出方式
  }
}

面向对象(java菜鸟的课堂笔记)的更多相关文章

  1. 泛型(java菜鸟的课堂笔记)

                1. 泛型的简单运 用和意义   2. 泛型的上限与下限   3. 泛型和 子类继承的限制   4. 泛型类和泛型 方法   5. 泛型嵌套和泛型擦除             ...

  2. java中的一些规则(菜鸟的课堂笔记)

    ls 查看目录下文件 java规则 代码都定义在类中,用class定义 禁止一个源文件写两个类: 一个源文件中,只能有一个类文件是pubic: 一个源文件中如果有多个类,编译完之后会产生多个class ...

  3. C#面向对象编程基础-喜课堂笔记

    **************[5][C#面向对象编程基础]第1讲:类与对象****************                 *************2.1.1_类与对象的概念**** ...

  4. java GUI (课堂笔记)

    关于java GUI Swing组件: JFrame 窗口组件 JLabel 标签 JButton 按钮组件 JTextField 单行文本框 系统控件(JDK自带) 自定义控件(模仿系统控件): 继 ...

  5. Java基础进阶:内部类lambda重点摘要,详细讲解成员内部类,局部内部类,匿名内部类,Lambda表达式,Lambda表达式和匿名内部类的区别,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    内部类lambda重点摘要 内部类特点: 内部类可以直接访问外部类,包括私有 外部类访问内部类必须创建对象 创建内部对象格式: 外部类.内部类 对象名=new外部类().new内部类(); 静态内部类 ...

  6. 线程(java课堂笔记)

    1.两种方式的差异 2.线程的生命周期 3.线程控制(线程的方法) 4.线程同步 5.线程同步锁 一. 两种方式的差异 A extends Thread :简单 不能再继承其他类了(Java单继承)同 ...

  7. Java课堂笔记(零):内容索引

    回想自己学习和使用Java的时间也是很长了.本科期间课堂上浅尝辄止地学习了点皮毛,后来也是搁置不用,未曾深入研究.研究生期间因为项目和实习的原因,基本算是重新拾起Java这门语言,并且接触到了Spri ...

  8. Java基础进阶:多态与接口重点摘要,类和接口,接口特点,接口详解,多态详解,多态中的成员访问特点,多态的好处和弊端,多态的转型,多态存在的问题,附重难点,代码实现源码,课堂笔记,课后扩展及答案

    多态与接口重点摘要 接口特点: 接口用interface修饰 interface 接口名{} 类实现接口用implements表示 class 类名 implements接口名{} 接口不能实例化,可 ...

  9. 九章算法系列(#3 Binary Tree & Divide Conquer)-课堂笔记

    前言 第一天的算法都还没有缓过来,直接就进入了第二天的算法学习.前一天一直在整理Binary Search的笔记,也没有提前预习一下,好在Binary Tree算是自己最熟的地方了吧(LeetCode ...

随机推荐

  1. java多线程基本概述(五)——线程通信

    线程之间的通信可以通过共享内存变量的方式进行相互通信,也可以使用api提供的wait(),notify()实现线程之间的通信.wait()方法是Object类的方法,改方法用来将当前的线程置入&quo ...

  2. node.js系列(实例):原生node.js+formidable模块实现简单的文件上传

    /** * 原生node.js结合formidable模块实现图片上传改名 * @Author:Ghost * @Date:2016/07/15 * @description: * 1.引入模块htt ...

  3. Python实现二叉树的四种遍历

    对于一个没学过数据结构这门课程的编程菜鸟来说,自己能理解数据结构中的相关概念,但是自己动手通过Python,C++来实现它们却总感觉有些吃力.递归,指针,类这些知识点感觉自己应用的不够灵活,这是自己以 ...

  4. Liunx的DHCP配置

    1.DHCP简介 (1)DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个简化主机IP地址分配管理的TCP/IP标准协议,用户可以利用DHCP服 ...

  5. Web层框架对网站中所有异常的统一解决

    一个网站的异常信息作为专业的人士,是不会轻易暴露给用户的,因为那样狠不安全,显得你漏是一回事,只要还是考虑到网站的数据安全问题,下面给大家分享一下一些常见的web层框架是如何处理统一的异常. 之前都是 ...

  6. 消息队列NetMQ 原理分析3-命令产生/处理和回收线程

    消息队列NetMQ 原理分析3-命令产生/处理和回收线程 前言 介绍 目的 命令 命令结构 命令产生 命令处理 创建Socket(SocketBase) 创建连接 创建绑定 回收线程 释放Socket ...

  7. NodeJS 中npm包管理工具

    NPM 使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从 ...

  8. bzoj1898 [Zjoi2005]沼泽鳄鱼

    Description 潘塔纳尔沼泽地号称世界上最大的一块湿地,它地位于巴西中部马托格罗索州的南部地区.每当雨季来临,这里碧波荡漾.生机盎然,引来不少游客.为了让游玩更有情趣,人们在池塘的中央建设了几 ...

  9. 【算法系列学习】[kuangbin带你飞]专题二 搜索进阶 D - Escape (BFS)

    Escape 参考:http://blog.csdn.net/libin56842/article/details/41909459 [题意]: 一个人从(0,0)跑到(n,m),只有k点能量,一秒消 ...

  10. oracle表信息

    获取表: select table_name from user_tables; //当前用户的表 select table_name from all_tables; //所有用户的表 select ...