zoukankan      html  css  js  c++  java
  • 从入门到放弃的第二周(面向对象)......day.6.。。。。。对象,类,方法;


    1,对象与类
    2,类的组成
    3.声明类
    4,通过类创建对象
    5,如何访问对象的属性,方法
    6,方法的概念,声明与调用,传参(重点)

     

     

    1,对象与类
    Object Class
    类是具有相同特征和行为的抽象模板,对象是类的一个具体实现(实例 instance)

     

     

    2,类的组成:
    属性和方法,代码块,内部类..

     

     

    3,声明类(自定义数据类型)
    class 类名{}
    一个Java文件可有有一个多个Java类,但是最多只有一个public类,而且该类的名称与文件名相同

     

     

    4,通过类创建对象
    new 构造方法();

     

     

    5,访问(access)属性或方法
    如果没有为属性显式赋值,则属性有默认值
    使用.操作符 访问对象的属性和方法
    访问属性或方法之前,对象不能为null(空对象,意味着未分配空间)

     


    定义一个代表电脑的类,属性品牌(brand),CPU,尺寸
    定义一个测试类,创建两台电脑,将其中的属性赋值,最后输出

    public class Diannao {
         String pp;
         String cpu;
         int cc;
    
    }
    

      

     

     

    6,方法的概念
    减少重复代码,可以提供系统的可维护性

     

     

    7,语法
    访问控制修饰性 返回值的数据类型 方法名(参数列表){
    方法体;
    }

     


    8,方法传参


    形式参数(形参):方法的参数列表中声明的参数
    实际参数(实参):传给方法参数的表达式或变量
    实际参数和形式参数,名字没关系,要匹配的是数据类型,数量,顺序

    如果参数是基本数据类型,按照传值方式
    如果参数是引用数据类型,按照传址方式


    9,作用域 Scope
    方法中声明的变量(方法体,参数)只能在该方法中使用

    分支结构与循环

     

     

    10,可变长度的参数
    语法:int... num
    可变长度参数最多一个且只能出现在参数列表的末尾

    调用:
    不传参数
    传一个
    传多个,以逗号隔开
    传数组


     

    课堂练习:
    1, 计算两个整数之和 
    2, 判断一个整数是否一个整数数组中
    boolean isExists(int num,int[] nums){
    }
    3, 判断两个整数数组是否相等
    4,计算两个整数数组之和,返回类型是数组
    public int[] add(int[] nums1,int[] nums2){

    }
    5,将一个数组倒置

    6,计算两个整数数组合并为升序数组中的中位数
    {1,4,8,9,3,5}
    {3,6,8,4,5,9,10}

    {1,3,3,4,5,6,6,9,9,10}

    7, 实现以下功能: 
    7.1 声明一个产品(Product)类,声明其属性(编号:no,名称:name,库存:stock)
    7.2 声明一个仓库(Storage)类,属性为大小为10的产品数组
    在Storage类中,有如下方法:
    入库:参数是产品,将其存入产品数组中,如果其中无该产品且数组有空间存储,则加到数组中,
    存在该产品,则更新其库存
    出库:参数是产品名和数量,先查询是否存在该产品,
    如果存在:
    则判断出库数量是否小于或等于其库存,符合条件则减少其库存,否则不作操作,仅提示
    如果不存在该产品,则不做操作,仅提示
    盘点:输出仓库中所有产品的信息

     

    public class Stoarg {
    
    	String[] x = new String[10];
    	int[] y = new int[10];
    
    	public void add(Product p) {
    
    		for (int i = 0; i < 10; i++) {
    			if (x[i] == p.name) {
    				y[i]++;
    				p.stock++;
    			} else if (x[i] == null) {
    				x[i] = p.name;
    				y[i]++;
    				p.stock++;
    				break;
    			}
    		}
    	}
    	public void chuku(String name, int num) {
    
    		for (int i = 0; i < 10; i++) {
    			if (x[i] == name) {
    				if (y[i] >= num) {
    					y[i] -= num;
    
    					break;
    				} else {
    					System.out.println("shuliangbuzu");
    					break;
    				}
    			}
    		}
    	}
    
    	public void xianshi() {
    
    		for (int i = 0; i < 10; i++) {
    			System.out.print(x[i] + " " + y[i] + "   ");
    		}
    	}
    }
    

      

    public class Product {
           int no;
           String name;
           int stock;
           
    }
    

      

    public class Producttest {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
                 Product bx=new Product();
                 bx.name="冰箱";
                 bx.no=1;
                 bx.stock=0;
                 
                 Stoarg a=new Stoarg();
                 a.xianshi();
                 a.add(bx);
                 System.out.print("
    ");
                 a.xianshi();
                 
                 a.chuku(bx.name, 1);
                // a.xianshi();
                 
                
                 Product ds=new Product();
                 ds.name="电视";
                 ds.no=1;
                 ds.stock=0;
                  
                 System.out.print("
    ");
                 a.xianshi();
                 a.add(ds);
                 System.out.print("
    ");
                 a.xianshi();
    	
                 System.out.print(bx.stock);	
    	}
    }
    

      

     概念性的东西开始偏多了(哎。。。。。。。。。。。。。。。。)

                                     

  • 相关阅读:
    报表自动化: 商业智能背后的秘密
    谈谈个人对 TDD (测试驱动开发) 的理解
    初识 Inception
    从软件生命周期看应用安全(网络安全)
    Spring JPA save 实现主键重复抛异常
    QMdiArea及QMdiSubWindow实现父子窗口及布局方法
    QTcpServer实现多客户端连接
    C++设计模式
    QTreeView/QTableView中利用QStandardItem实现复选框三种形态变化
    Qt富文本编辑器QTextDocument
  • 原文地址:https://www.cnblogs.com/suxiao666/p/11329395.html
Copyright © 2011-2022 走看看