|
|
(未显示同一用户的27个中间版本) |
第1行: |
第1行: |
| + | ==环境准备== |
| + | *[[商苑面馆:Java基础环境准备]]、[[商苑面馆:Java web环境准备]] |
| | | |
− | == 任务二 JAVA程序开发基础 == | + | == 初识JAVA语言== |
| + | *[[Java程序运行机制]]、 |
| + | *[[JAVA类的基本结构]]、[[利用Eclipse编辑并运行JAVA应用程序]] |
| + | *[[控制台输出]] |
| + | *[[商苑面馆:构建点餐平台主目录]] |
| + | *[[Java控制台输入]]、[[Java练习:面馆点餐]] |
| | | |
− | ===2.1变量和表达式=== | + | == JAVA程序开发基础 == |
− | *[[Java练习:面馆点餐]]
| + | === 变量和表达式=== |
| | | |
− | *Java控制台输入: | + | *[[Java类的基本结构(续)]] |
| + | *[[Java标识符和关键字]]、[[Java注释]] |
| + | *[[Java变量与常量]]、[[Java数据类型]] |
| + | *[[Java运算符与表达式]] |
| + | *[[Java的错误和异常]] |
| + | * 拓展与提高:[[Java数据类型转换]] |
| | | |
− | <nowiki>import java.util.Scanner;
| + | *[[商苑面馆:用户操作信息输入]] |
− |
| |
− | public class Test {
| |
− | public static void main(String[] args) {
| |
− | Scanner scan = new Scanner(System.in);
| |
− | // 从键盘接收数据
| |
− |
| |
− | // next方式接收字符串
| |
− | System.out.println("next方式接收:");
| |
− |
| |
− | String str1 = scan.next();
| |
− | String str2 = "刀削面";
| |
− | if(str1.equals(str2)){
| |
− | System.out.println("您选择的是:" + str1);
| |
− | }
| |
− |
| |
− | scan.close();
| |
− | }
| |
− | }</nowiki>
| |
| | | |
− | ===2.2智能决策:选择结构=== | + | ===智能决策:选择结构=== |
− | ====三目运算符====
| |
| | | |
− | <nowiki>package demo1;
| + | *[[程序流程]] |
− | import java.util.Scanner;
| + | *[[Java运算符与表达式(二)]] |
− | public class happy08 {
| + | *[[Java if条件语句]] |
| + | *[[Java if语句的应用(二)]] |
| + | *[[Java switch分支语句]] |
| | | |
− | public static void main(String[] args) {
| + | *拓展与提高: |
− | // TODO Auto-generated method stub
| + | *[[Java运算符的结合性和优先级]] |
− | //int a = 10 ;int b = 20;
| + | *[[Java的MessageFormat类]] |
− | //System.out.println(a==b);
| |
− | Scanner sc = new Scanner(System.in);
| |
− | System.out.println("客官,您是堂吃还是外卖?1.堂吃; 2.外卖");
| |
− | String s = sc.next();
| |
− | String s2 = (s.equals("1")) ? "堂吃一位" : "外送一位";
| |
− | System.out.println(s2);
| |
| | | |
− | }
| + | *[[Java任务:不同输入进行不同商品操作(一)]] |
| + | *[[Java任务:不同输入进行不同商品操作(二)]] |
| | | |
− | }</nowiki>
| |
| | | |
− | ====if条件语句==== | + | ===重复迭代:循环结构=== |
| + | 知识点链接1: |
| + | *[[Java的while循环]] |
| + | *[[Java的do…while循环]] |
| + | *[[Java的for循环]] |
| | | |
− | 第一种形式:
| + | *[[Java的break语句]] |
| + | *[[Java的continue语句]] |
| + | *[[Java的return语句]] |
| | | |
− | <nowiki>public class Hello123 {
| + | 拓展与提高:[[Java的循环嵌套]] |
| | | |
− | public static void main(String[] args) {
| + | *[[Java任务:重复菜单操作之客户端]] |
− | // TODO Auto-generated method stub
| |
− | // TODO Auto-generated method stub
| |
− | float mian = 10.0f;//面的价格
| |
− | float suan = 2.0f;//酸梅汤
| |
− | float total_pay =0f;//总钱数
| |
− | Scanner sc = new Scanner(System.in);
| |
− | //问用户要几碗面?
| |
− | System.out.println("请问您要几碗面?");
| |
− | int num = sc.nextInt();
| |
− | total_pay = num * mian;
| |
− |
| |
− | //问顾客需不需要饮料(饮料2元一杯)
| |
− |
| |
− | System.out.println("请问您是否需要饮料?Y/n");
| |
− | String s = sc.next( );
| |
− | if( s.equals("y")){
| |
− | total_pay = total_pay + num * suan;
| |
− | }
| |
− |
| |
− | System.out.printf("您一共消费了%f元",total_pay);
| |
− | sc.close();
| |
− | }
| |
| | | |
− | }</nowiki>
| + | === 数据的存储--数组 === |
| | | |
− | 第2种形式:
| + | *[[Java一维数组]] |
| + | *[[Java二维数组]] |
| + | *[[Javva for语句循环遍历数组]] |
| + | 拓展:[[Java的Arrays类]]、[[Java数组的复制]] |
| | | |
− | <nowiki>package demo1;
| + | ===程序调试 === |
− | import java.util.Scanner;
| + | *[[Java程序调试]] |
− | public class Tangchi {
| + | *[[分段测试思想]] |
| | | |
− | public static void main(String[] args) {
| + | *[[Java任务:购物平台主目录的调试]] |
− | // TODO Auto-generated method stub
| |
− | Scanner sc = new Scanner(System.in);
| |
− | System.out.println("客官,请问您是堂吃还是外送?"
| |
− | +"1.堂吃/2.外送");
| |
− | String s = sc.next();
| |
− | if(s.equals("1")){
| |
− | System.out.println("堂吃一位!");
| |
− | }else{
| |
− | System.out.println("外送一位!");
| |
− | }
| |
− | }
| |
| | | |
− | }</nowiki>
| + | ==JAVA面向对象程序编程== |
| + | ===类和对象=== |
| + | *[[面向对象思想]] |
| + | *[[定义Java类]] |
| + | *[[Java类的方法]] |
| + | *[[Java的构造方法]] |
| + | *[[Java对象的产生与使用]] |
| + | *[[商苑面馆:Java创建对象]] |
| | | |
− | 第3种形式:
| + | ===成员变量的完善 === |
| + | *[[理解Java的封装]] |
| + | *[[使用Java的访问控制符]] |
| + | *[[如何实现Java的封装]] |
| + | *[[商苑面馆:Java类的封装]] |
| + | 拓展: |
| + | *[[Java的包]] |
| + | *[[Java的变量作用域]] |
| | | |
− | <nowiki>package demo1;
| + | ===方法重载=== |
− | import java.util.Scanner;
| + | *知识点:[[Java方法重载]] |
− | public class MianType {
| + | *[[商苑面馆:Java方法重载]] |
| | | |
− | public static void main(String[] args) {
| + | ===继承和多态=== |
− | // TODO Auto-generated method stub
| + | *[[Java继承的概念]] |
− | Scanner sc = new Scanner(System.in);
| + | *[[Java中的this和super关键字]]、[[最终类和抽象类]] |
− | System.out.println("客官,您几位?");
| + | *[[商苑面馆:Java类的继承]] |
− | int num = sc.nextInt();
| + | *[[Java的多态及用法]] |
− | System.out.println("请问你们吃什么面?");
| + | *[[商苑面馆:Java类的多态]] |
− | System.out.println("a.老北京炸酱面;b.刀削面"
| |
− | +"c.油泼面");
| |
− | String s = sc.next();
| |
− | if(s.equals("a")){
| |
− | System.out.printf("老北京炸酱面%d碗",num);
| |
− | }else if(s.equals("b")){
| |
− | System.out.printf("刀削面%d碗",num);
| |
− | }else if(s.equals("c")){
| |
− | System.out.printf("油泼面%d碗",num);
| |
− | }else{
| |
− | System.out.println("不好意思,您需求的面我们这里没有");
| |
− |
| |
− | }
| |
− | }
| |
| | | |
− | }</nowiki>
| |
| | | |
| + | ===接口和多态=== |
| + | *[[接口与多态]] |
| + | *[[面向接口编程的思想]] |
| + | *[[商苑面馆:Java接口]] |
| | | |
− | ====if语句的嵌套==== | + | == JAVA对象数组 == |
| + | ===Java对象数组=== |
| + | *[[Java对象数组]] |
| | | |
− | <nowiki>询问顾客吃什么面,并询问其是否加蛋、加油渣 ?将结果反馈给后台。</nowiki>
| + | ===Java字符串=== |
| + | *[[Java字符串]] |
| + | *[[Java StringBuffer类]] |
| | | |
− | ====if语句的多条件====
| + | *[[商苑面馆:Java对象数组]] |
| | | |
− | <nowiki>import java.util.Scanner;
| + | == 数据存储——集合和文件 == |
− | public class happy09 {
| + | ===集合=== |
| + | *[[Java集合框架]] |
| + | *[[Java集合与泛型]]、[[Iterator接口]] |
| + | *[[List接口和ArrayList类]]、[[List接口和LinkedList类]] |
| + | *[[Set接口和HashSet类]] |
| + | *[[Map接口和HashMap类]] |
| + | *[[商苑面馆:Java ArrayList]]、[[商苑面馆:Java LinkedList]] |
| + | *[[商苑面馆:Java HashSet]]、[[商苑面馆:Java HashMap]] |
| + | *[[商苑面馆:Java接口]]、[[商苑面馆:Java接口_补充练习]] |
| | | |
− | public static void main(String[] args) {
| + | ===文件=== |
− | // TODO Auto-generated method stub
| + | *[[File类]] |
− | float price ;boolean fenqi;boolean firstpay;
| + | *[[Java的IO类]] |
− | System.out.println("老板,请问手机多少钱?");
| + | *[[文本IO]] |
− | Scanner sc = new Scanner(System.in);
| + | *[[二进制IO]] |
− | price = sc.nextFloat();
| + | *[[Java任务:缓存购物车]] |
− | System.out.println("老板,请问支不支持分期?");
| + | *拓展:[[DataInputStream和DataOutputStream]] |
− | fenqi = sc.nextBoolean();
| + | *拓展: [[对象I/O]] |
− | System.out.println("老板,请问支不支持零首付?");
| |
− | firstpay = sc.nextBoolean();
| |
− |
| |
− | if(price <=1000 && fenqi == true && firstpay == true) {
| |
− | System.out.println("小Case!");
| |
− | }else {
| |
− | System.out.println("太贵了,买不起~");
| |
− | }
| |
− | }
| |
| | | |
− | }</nowiki>
| + | == 异常处理== |
| + | *[[Java错误处理]] |
| + | *[[Java异常处理机制]] |
| | | |
− | ====switch语句==== | + | ==数据库访问技术== |
| + | ===连接数据库=== |
| + | *[[数据库连接技术]] |
| + | *[[Eclipse导入数据库驱动程序]] |
| + | *[[JDBC访问数据库]] |
| + | *[[商苑面馆:Java命令行版之 Dao层(MySQL实现)]] |
| | | |
− | <nowiki>package test;
| + | ===更新数据库表中数据=== |
− | import java.util.Scanner;
| + | *[[函数封装SQL操作]] |
− | public class a7 {
| + | *[[SQL注入]] |
| + | *[[JDBC进行数据库增删查改]] |
| + | *[[商苑面馆:Java命令行版之 FoodDao层(MySQL实现)]] |
| + | ===查询数据库中数据=== |
| + | *[[Java任务:图书信息查询]] |
| + | *[[深入理解ResultSet]] |
| | | |
− | public static void main(String[] args) {
| |
− | // TODO 自动生成的方法存根
| |
− | Scanner sc = new Scanner (System.in);
| |
− | while (true){
| |
− | System.out.println("客观,请问您需要什么面:");
| |
− | System.out.print("1.刀削面\n2.蛋黄面\n3.玉米面\n4.牛筋面\n5.幸福小丸仔面\n");
| |
− | int m = sc.nextInt();
| |
− | switch (m){
| |
− | case 1:
| |
− | System.out.println("您选择的是刀削面");
| |
− | break;
| |
− | case 2:
| |
− | System.out.println("您选择的是蛋黄面");
| |
− | break;
| |
− | case 3:
| |
− | System.out.println("您选择的是玉米面");
| |
− | break;
| |
− | case 4:
| |
− | System.out.println("您选择的是牛筋面");
| |
− | break;
| |
− | case 5:
| |
− | System.out.println("您选择的是幸福小丸仔面");
| |
− | break;
| |
− | default:
| |
− | System.out.println("对不起 输入错误");
| |
− | break;
| |
− | }
| |
− | }
| |
| | | |
− | }
| + | ==MVC设计思想== |
| + | ==用户功能== |
| + | *[[商苑面馆:Java命令行版之 View层]] |
| + | *[[商苑面馆:Java命令行版之 Dao层]]、[[商苑面馆:Java命令行版之 Dao层(MySQL实现)]] |
| + | *[[商苑面馆:Java命令行版之 Model层]] |
| | | |
− | }</nowiki>
| + | ==商品功能== |
| + | *[[商苑面馆:Java命令行版之 FoodView]] |
| + | *[[商苑面馆:Java命令行版之 FoodDao]]、[[商苑面馆:Java命令行版之 FoodDao层(MySQL实现)]] |
| + | *[[商苑面馆:Java命令行版之 FoodModel]] |
| | | |
− | ===2.3重复迭代:循环结构=== | + | ==购物车功能== |
− | ====while循环====
| + | *[[商苑面馆:Java命令行版之 CartDao]] |
− | <nowiki>package test;
| + | *[[商苑面馆:Java命令行版之 CartModel]] |
− | import java.util.Scanner;
| + | *[[商苑面馆:Java命令行版之 CartView]] |
− | public class a7 {
| |
| | | |
− | public static void main(String[] args) {
| + | ==Windows应用程序开发== |
− | // TODO 自动生成的方法存根
| + | ===Windows应用程序基本结构=== |
− | Scanner sc = new Scanner (System.in);
| + | *[[Java图形界面编程基础]] |
− | while (true){
| + | *[[Java界面容器]] |
− | System.out.println("客观,请问您需要什么面:");
| + | *[[Java界面组件]] |
− | System.out.print("1.刀削面\n2.蛋黄面\n3.玉米面\n4.牛筋面\n5.幸福小丸仔面\n");
| + | *[[Java界面布局]] |
− | int m = sc.nextInt();
| + | *[[Java任务:商苑面馆登录窗体的设计]] |
− | switch (m){
| + | 拓展: |
− | case 1:
| + | *[[复选框JCheckBox]] |
− | System.out.println("您选择的是刀削面");
| + | *[[JRadioButton和ButtonGroup]] |
− | break;
| |
− | case 2:
| |
− | System.out.println("您选择的是蛋黄面");
| |
− | break;
| |
− | case 3:
| |
− | System.out.println("您选择的是玉米面");
| |
− | break;
| |
− | case 4:
| |
− | System.out.println("您选择的是牛筋面");
| |
− | break;
| |
− | case 5:
| |
− | System.out.println("您选择的是幸福小丸仔面");
| |
− | break;
| |
− | default:
| |
− | System.out.println("对不起 输入错误");
| |
− | break;
| |
− | }
| |
− | }
| |
| | | |
− | }
| + | ===Windows窗体事件处理机制=== |
| + | *[[事件和事件源]] |
| + | *[[注册事件监听器和处理事件]] |
| + | *[[键盘事件]] |
| + | *[[鼠标事件]] |
| + | *[[Lambda表达式]] |
| + | *[[商苑面馆:用户登录界面功能实现]] |
| | | |
− | }</nowiki>
| |
| | | |
− | ====for循环==== | + | ==专题复习== |
− | <nowiki>public class test02 {
| + | *[[商苑面馆:Java程序开发基础]] |
| + | *[[商苑面馆:Java面向对象]] |
| + | *[[商苑面馆:Java数据库连接]] |
| + | *[[商苑面馆:Windows图形界面设计]] |
| | | |
− | public static void main(String[] args) {
| + | *[[商苑面馆:Java命令行版]] |
− | // TODO Auto-generated method stub
| + | *[[商苑面馆:Java web网页版]] |
− | //String a ="hello";
| + | *[[商苑面馆:Java程序桌面版]] |
− | String [] menu = {"阳春面","油泼面","鸡汤面","火鸡面","安徽板面"};
| + | *[[商苑面馆:Java程序安卓版]] |
− | for(int i=0;i <5;i++){
| |
− | System.out.println(menu[i]);
| |
− | }
| |
− |
| |
− | }
| |
| | | |
− | }</nowiki>
| + | ==附加== |
− | | + | *[[商苑面馆:类一览表]] |
− | ====循环的嵌套====
| |
− | <nowiki>public class test03 {
| |
− | | |
− | public static void main(String[] args) {
| |
− | // TODO Auto-generated method stub
| |
− | String [] menu = {"阳春面","油泼面","鸡汤面","火鸡面","安徽板面"};
| |
− | String [] drink = {"可乐","啤酒","雪碧"};
| |
− | for(int i=0;i<5;i++){
| |
− | for(int j=0;j<3;j++){
| |
− | System.out.println(menu[i]+"+"+drink[j]);
| |
− | }
| |
− | }
| |
− | }
| |
− | | |
− | }</nowiki>
| |
− | | |
− | ===2.4 数据的存储--数组===
| |
− | ====Java一维数组====
| |
− | *面馆老板现在需要重新定义一份菜单,使用一维数组,他有几种方法呢 ?
| |
− | | |
− | <nowiki>public class HelloWorld {
| |
− | public static void main(String []args) {
| |
− | //System.out.println("Hello World!");
| |
− | String menu = new String[5];
| |
− | menu[0] = "炸酱面";
| |
− | menu[1] = "刀削面";
| |
− | menu[2] = "安徽板面";
| |
− | menu[3] = "葱油拌面";
| |
− | menu[4] = "兰州拉面";
| |
− |
| |
− |
| |
− |
| |
− | }
| |
− | }</nowiki>
| |
− | | |
− | ====Java二维数组====
| |
− | *面馆老板现在需要根据周一到周五,每天推出三款特价面,利用二维数组,他该怎么做呢 ?
| |
− | <nowiki>
| |
− | | |
− | public class erweishuzu {
| |
− | | |
− | public static void main(String[] args) {
| |
− | // TODO Auto-generated method stub
| |
− | //double [][] priec = new double [4] [3];
| |
− | String [][] price = {{"炸酱面","方便面","版面"},{"刀削面","拉面","炒面"},{"牛肉面","鸡汤面","红烧面"},{"炒面","拉面","刀削面"},{"牛肉面","红烧面","鸡汤面"}};
| |
− |
| |
− | for(int i=0;i<5;i++) {
| |
− | System.out.println("周"+(i+1));
| |
− | for(int j = 0;j<3;j++) {
| |
− | System.out.println(price[i][j]);
| |
− | }
| |
− | }
| |
− | }
| |
− | | |
− | }
| |
− | </nowiki>
| |
− | | |
− | ====Javva for语句循环遍历数组====
| |
− | *面馆老板用foreach语句遍历打印每一种面。
| |
− | <nowiki></nowiki>
| |
− | | |
− | ==任务三 JAVA面向对象程序编程(一)==
| |
− | ===3.1类和对象===
| |
− | ====类和对象====
| |
− | 类表示一个有共同性质的对象群体,而对象指的是具体的实实在在的物体。
| |
− | | |
− | 类与对象的关系就如模具和铸件的关系,类是创建对象的模具,而对象则是由类这个模板制作出来的铸件
| |
− | | |
− | *举例来说,面馆按产品分类,可以分为几类?
| |
− | | |
− | 面类,饮料类,小吃类
| |
− | | |
− | *每一类有什么具体的产品(对象)?
| |
− | | |
− | 面类的对象: 火鸡面,炸酱面,刀削面,油泼面
| |
− | 饮料类对象: 可乐,雪碧,芬达,啤酒,江小白
| |
− | 小吃类对象: 炸串,卤蛋,麻辣烫,辣白菜
| |
− | | |
− | ====类的成员变量和成员方法====
| |
− | 类一般由三部分组成:成员变量,成员方法和构造方法。
| |
− | *类的成员变量是用来描述属性信息的,因此大部分成员变量是以名词的形式出现
| |
− | *类的方法又被称为成员方法(函数),用来描述动作、行为和功能,是一段完成某种功能或操作的代码段
| |
− | *构造方法的作用是创建一个对象并对其完成初始化。
| |
− | | |
− | 以面馆的面类产品为例:
| |
− | | |
− | <nowiki>面类:
| |
− | | |
− | 名称;
| |
− | 类别:(干面,汤面,炒面)
| |
− | 价格;
| |
− | 份量;
| |
− | 口味;
| |
− | 数量
| |
− | | |
− | 预定订单;
| |
− | 取消订单;
| |
− | 查看订单;
| |
− | 修改订单;
| |
− | 投诉店家;</nowiki>
| |
− |
| |
− | *面馆老板建立Noodle类,为它设计成员变量和成员方法
| |
− | | |
− | <nowiki>package 小马哥面馆;
| |
− | | |
− | public class Noodle {
| |
− | //成员变量
| |
− | //名称
| |
− | public String name;
| |
− | //价格
| |
− | public double price;
| |
− | //数量
| |
− | public int num;
| |
− |
| |
− | /*构造方法*/
| |
− | public Noodle(){
| |
− |
| |
− | }
| |
− | public Noodle(String name,double price,int num){
| |
− | this.name = name;
| |
− | this.price = price;
| |
− | this.num = num;
| |
− | }
| |
− | //成员方法
| |
− | //预定订单;
| |
− | public void buy(String name,int num){
| |
− | this.name =name;
| |
− | this.num = num;
| |
− |
| |
− | }
| |
− | //取消订单;
| |
− | public void cancel(String name,int n){
| |
− | this.name =name;
| |
− | this.num = this.num -n;
| |
− | }
| |
− | //查看订单;
| |
− | public String lookup( ){
| |
− | String s ="您订购的面是:\r\n";
| |
− | s = "品名:"+ this.name
| |
− | +" 价格:"+ this.price
| |
− | +" 数量: "+ this.num;
| |
− | return s;
| |
− | }
| |
− | | |
− | public static void main(String[] args) {
| |
− | // TODO Auto-generated method stub
| |
− | Noodle n1= new Noodle();
| |
− | n1.name="手擀面";
| |
− | n1.price = 10;
| |
− | n1.num = 2;
| |
− | System.out.println("您订的面是"+n1.name);
| |
− | System.out.println("价格:"+n1.price);
| |
− | System.out.println("数量"+ n1.num);
| |
− |
| |
− | Noodle n2 = new Noodle("炸酱面",12,3);
| |
− | System.out.println("您订的面是"+n2.name);
| |
− | System.out.println("价格:"+n2.price);
| |
− | System.out.println("数量"+ n2.num);
| |
− |
| |
− | Noodle n3 = new Noodle();
| |
− | n3.buy("油泼面",2);
| |
− | n3.cancel("油泼面",1);
| |
− | String s2 =n3.lookup();
| |
− | System.out.println(s2);
| |
− |
| |
− | }
| |
− | | |
− | }
| |
− | </nowiki>
| |
− | | |
− | 练习:怎样设计小吃类和饮料类 ?
| |
− | | |
− | ===3.2 成员变量的完善===
| |
− | 封装只是为了对类中的属性更好进行控制,因此要实现封装需要属性私有化,这样可以保证属性不会被其他类改动。然后使用公有方法把私有的属性暴露出去,
| |
− | | |
− | 所以说封装分为三步:用private修饰变量,建立读方法、建立写方法
| |
− | | |
− | 例:为刚才的面类成员变量进行封装:(
| |
− | | |
− | <nowiki>package happy0319;
| |
− | | |
− | public class Noodle {
| |
− | //成员变量
| |
− | //名称
| |
− | private String name;
| |
− | //价格
| |
− | private double price;
| |
− | //数量
| |
− | private int num;
| |
− |
| |
− | /*构造方法*/
| |
− | public Noodle(){
| |
− |
| |
− | }
| |
− | public Noodle(String name,double price,int num){
| |
− | this.name = name;
| |
− | this.price = price;
| |
− | this.num = num;
| |
− | }
| |
− | //成员方法
| |
− | public String getName(){
| |
− | return this.name;
| |
− | }
| |
− | public double getPrice(){
| |
− | return this.price;
| |
− | }
| |
− | public int getNum(){
| |
− | return this.num;
| |
− | }
| |
− | //写方法
| |
− | public boolean setName(String s){
| |
− | this.name = s;
| |
− | return true;
| |
− | }
| |
− | public boolean setPrice(double p){
| |
− | this.price = p;
| |
− | return true;
| |
− | }
| |
− | public boolean setNum(int n){
| |
− | this.num = n;
| |
− | return true;
| |
− | }
| |
− |
| |
− | public String toString(){
| |
− | return "名称:" +this.name+"价格:"+
| |
− | this.price + "数量: " + this.num;
| |
− | }
| |
− | | |
− | public static void main(String[] args) {
| |
− | // TODO Auto-generated method stub
| |
− |
| |
− | Noodle n2 = new Noodle("炸酱面",12,3);
| |
− | System.out.println("您订的面是"+n2.getName());
| |
− | System.out.println("价格:"+n2.getPrice());
| |
− | System.out.println("数量"+ n2.getNum());
| |
− |
| |
− | n2.setName("老北京炸酱面");
| |
− | n2.setPrice(15);
| |
− | n2.setNum(2);
| |
− |
| |
− | System.out.println("订单变更:");
| |
− | System.out.println("您订的面是"+n2.getName());
| |
− | System.out.println("价格:"+n2.getPrice());
| |
− | System.out.println("数量"+ n2.getNum());
| |
− |
| |
− | }
| |
− | | |
− | }
| |
− | </nowiki>
| |
− | | |
− | ==任务四 对象数组==
| |
− | 在我们学了类和对象之后,其实对象也可以创建数组,我们将它称作对象数组。
| |
− | | |
− | 声明和创建对象数组的语法与基本类型值数组创建语法相同,例如:
| |
− | | |
− | Book[] books=new Book[5];
| |
− | | |
− | 下面我们在测试类的main方法中建立了一个Noodle类的对象数组,并将其初始化。:
| |
− | | |
− | <nowiki>package test2;
| |
− | | |
− | public class Test {
| |
− | | |
− | public static void main(String[] args) {
| |
− | // TODO Auto-generated method stub
| |
− | Noodle [] nl = new Noodle[3];
| |
− | nl[0] = new Noodle("炸酱面",12.0,3);
| |
− | nl[1] = new Noodle("臊子面",14.0,2);
| |
− | nl[2] = new Noodle("刀削面",10.0,5);
| |
− |
| |
− | for(int i=0;i<3;i++){
| |
− | if(nl[i].getName().equals("臊子面")){
| |
− | System.out.println(nl[i].toString());
| |
− | }
| |
− |
| |
− | }
| |
− | }
| |
− | | |
− | }
| |
− | </nowiki>
| |
− | | |
− | 现在,我们新建立一个新类FoodSet,表示食物仓库:在它里面可以建立一个Noodle类的对象数组
| |
− | | |
− | | |
− | <nowiki>public class FoodSet {
| |
− | private Noodle[] n;//食物数组
| |
− | private int num;//数组的个数
| |
− |
| |
− | public FoodSet(Noodle[] n,int num ){
| |
− | this.n = n;
| |
− | this.num = num;
| |
− | }
| |
− | public String toString(){
| |
− | String s="";
| |
− | for(int i=0;i<num;i++){
| |
− | s += n[i].toString()+"\r\n";
| |
− | }
| |
− | return s;
| |
− | }
| |
− | public static void main(String[] args) {
| |
− | // TODO Auto-generated method stub
| |
− | Noodle [] nl = new Noodle[3];
| |
− | nl[0] = new Noodle("炸酱面",12.0,3);
| |
− | nl[1] = new Noodle("臊子面",14.0,2);
| |
− | nl[2] = new Noodle("刀削面",10.0,5);
| |
− | FoodSet f = new FoodSet(nl,3);
| |
− | System.out.println(f.toString());
| |
− | }
| |
− | | |
− | }
| |
− | </nowiki>
| |
− | | |
− | 思考题:如何为FoodSet类建立查询方法 ?根据面名去查询特定产品的价格和数量。
| |