从入门到放弃的第二周(面向对象)......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("\n"); a.xianshi(); a.chuku(bx.name, 1); // a.xianshi(); Product ds=new Product(); ds.name="电视"; ds.no=1; ds.stock=0; System.out.print("\n"); a.xianshi(); a.add(ds); System.out.print("\n"); a.xianshi(); System.out.print(bx.stock); } }
概念性的东西开始偏多了(哎。。。。。。。。。。。。。。。。)