“商苑面馆 :Java知识串讲”的版本间的差异

来自CloudWiki
跳转至: 导航搜索
方法重载
专题复习
 
(未显示同一用户的23个中间版本)
第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
 
        Scanner sc = new Scanner(System.in);
 
        System.out.println("客官,您几位?");
 
        int num = sc.nextInt();
 
        System.out.println("请问你们吃什么面?");
 
        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>
 
 
 
 
 
====if语句的嵌套====
 
 
 
<nowiki>询问顾客吃什么面,并询问其是否加蛋、加油渣 ?将结果反馈给后台。</nowiki>
 
 
 
====if语句的多条件====
 
 
 
<nowiki>import java.util.Scanner;
 
public class happy09 {
 
 
 
public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
        float price ;boolean fenqi;boolean firstpay;
 
        System.out.println("老板,请问手机多少钱?");
 
        Scanner sc = new Scanner(System.in);
 
        price = sc.nextFloat();
 
        System.out.println("老板,请问支不支持分期?");
 
        fenqi = sc.nextBoolean();
 
        System.out.println("老板,请问支不支持零首付?");
 
        firstpay = sc.nextBoolean();
 
       
 
        if(price <=1000 && fenqi == true && firstpay == true) {
 
        System.out.println("小Case!");
 
        }else {
 
        System.out.println("太贵了,买不起~");
 
        }
 
}
 
 
 
}</nowiki>
 
 
 
====switch语句====
 
 
 
<nowiki>package test;
 
import java.util.Scanner;
 
public class a7 {
 
 
 
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;
 
}
 
}
 
 
 
}
 
 
 
}</nowiki>
 
 
 
===2.3重复迭代:循环结构===
 
====while循环====
 
<nowiki>package test;
 
import java.util.Scanner;
 
public class a7 {
 
 
 
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;
 
}
 
}
 
 
 
}
 
 
 
}</nowiki>
 
 
 
====for循环====
 
<nowiki>public class test02 {
 
 
 
public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
        //String a ="hello";
 
String [] menu = {"阳春面","油泼面","鸡汤面","火鸡面","安徽板面"};
 
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>
+
===继承和多态===
 +
*[[Java继承的概念]]
 +
*[[Java中的this和super关键字]]、[[最终类和抽象类]]
 +
*[[商苑面馆:Java类的继承]]
 +
*[[Java的多态及用法]]
 +
*[[商苑面馆:Java类的多态]]
  
===2.4 数据的存储--数组===
 
====Java一维数组====
 
*面馆老板现在需要重新定义一份菜单,使用一维数组,他有几种方法呢 ?
 
  
<nowiki>public class HelloWorld {
+
===接口和多态===
    public static void main(String []args) {
+
*[[接口与多态]]
      //System.out.println("Hello World!");
+
*[[面向接口编程的思想]]
  String menu = new String[5];
+
*[[商苑面馆:Java接口]]
  menu[0] = "炸酱面";
 
  menu[1] = "刀削面";
 
  menu[2] = "安徽板面";
 
  menu[3] = "葱油拌面";
 
  menu[4] = "兰州拉面";
 
 
 
 
 
 
 
    }
 
}</nowiki>
 
  
====Java二维数组====
+
== JAVA对象数组 ==
*面馆老板现在需要根据周一到周五,每天推出三款特价面,利用二维数组,他该怎么做呢 ?
+
===Java对象数组===
<nowiki>
+
*[[Java对象数组]]
  
public class erweishuzu {
+
===Java字符串===
 +
*[[Java字符串]]
 +
*[[Java StringBuffer类]]
  
public static void main(String[] args) {
+
*[[商苑面馆:Java对象数组]]
// 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>
+
===集合===
 +
*[[Java集合框架]]
 +
*[[Java集合与泛型]]、[[Iterator接口]]
 +
*[[List接口和ArrayList类]]、[[List接口和LinkedList类]]
 +
*[[Set接口和HashSet类]]
 +
*[[Map接口和HashMap类]]
 +
*[[商苑面馆:Java ArrayList]]、[[商苑面馆:Java LinkedList]]
 +
*[[商苑面馆:Java HashSet]]、[[商苑面馆:Java HashMap]]
 +
*[[商苑面馆:Java接口]]、[[商苑面馆:Java接口_补充练习]]
  
====Javva for语句循环遍历数组====
+
===文件===
*面馆老板用foreach语句遍历打印每一种面。
+
*[[File类]]
<nowiki></nowiki>
+
*[[Java的IO类]]
 +
*[[文本IO]]
 +
*[[二进制IO]]
 +
*[[Java任务:缓存购物车]]
 +
*拓展:[[DataInputStream和DataOutputStream]]
 +
*拓展: [[对象I/O]]
  
==任务三 JAVA面向对象程序编程(一)==
+
== 异常处理==
===3.1类和对象===
+
*[[Java错误处理]]
====类和对象====
+
*[[Java异常处理机制]]
类表示一个有共同性质的对象群体,而对象指的是具体的实实在在的物体。
 
  
类与对象的关系就如模具和铸件的关系,类是创建对象的模具,而对象则是由类这个模板制作出来的铸件
+
==数据库访问技术==
 +
===连接数据库===
 +
*[[数据库连接技术]]
 +
*[[Eclipse导入数据库驱动程序]]
 +
*[[JDBC访问数据库]]
 +
*[[商苑面馆:Java命令行版之 Dao层(MySQL实现)]]
  
*举例来说,面馆按产品分类,可以分为几类?
+
===更新数据库表中数据===
 +
*[[函数封装SQL操作]]
 +
*[[SQL注入]]
 +
*[[JDBC进行数据库增删查改]]
 +
*[[商苑面馆:Java命令行版之 FoodDao层(MySQL实现)]]
 +
===查询数据库中数据===
 +
*[[Java任务:图书信息查询]]
 +
*[[深入理解ResultSet]]
  
  面类,饮料类,小吃类
 
  
*每一类有什么具体的产品(对象)?
+
==MVC设计思想==
 +
==用户功能==
 +
*[[商苑面馆:Java命令行版之 View层]]
 +
*[[商苑面馆:Java命令行版之 Dao层]]、[[商苑面馆:Java命令行版之 Dao层(MySQL实现)]]
 +
*[[商苑面馆:Java命令行版之 Model层]]
  
  面类的对象: 火鸡面,炸酱面,刀削面,油泼面
+
==商品功能==
  饮料类对象: 可乐,雪碧,芬达,啤酒,江小白
+
*[[商苑面馆:Java命令行版之 FoodView]]
  小吃类对象: 炸串,卤蛋,麻辣烫,辣白菜
+
*[[商苑面馆:Java命令行版之 FoodDao]]、[[商苑面馆:Java命令行版之  FoodDao层(MySQL实现)]]
 +
*[[商苑面馆:Java命令行版之 FoodModel]]
  
====类的成员变量和成员方法====
+
==购物车功能==
类一般由三部分组成:成员变量,成员方法和构造方法。
+
*[[商苑面馆:Java命令行版之 CartDao]]
*类的成员变量是用来描述属性信息的,因此大部分成员变量是以名词的形式出现
+
*[[商苑面馆:Java命令行版之 CartModel]]
*类的方法又被称为成员方法(函数),用来描述动作、行为和功能,是一段完成某种功能或操作的代码段
+
*[[商苑面馆:Java命令行版之 CartView]]
*构造方法的作用是创建一个对象并对其完成初始化。
 
  
以面馆的面类产品为例:
+
==Windows应用程序开发==
 +
===Windows应用程序基本结构===
 +
*[[Java图形界面编程基础]]
 +
*[[Java界面容器]]
 +
*[[Java界面组件]]
 +
*[[Java界面布局]]
 +
*[[Java任务:商苑面馆登录窗体的设计]]
 +
拓展:
 +
*[[复选框JCheckBox]]
 +
*[[JRadioButton和ButtonGroup]]
  
<nowiki>面类:
+
===Windows窗体事件处理机制===
 +
*[[事件和事件源]]
 +
*[[注册事件监听器和处理事件]]
 +
*[[键盘事件]]
 +
*[[鼠标事件]]
 +
*[[Lambda表达式]]
 +
*[[商苑面馆:用户登录界面功能实现]]
  
  名称;
 
  类别:(干面,汤面,炒面)
 
  价格;
 
  份量;
 
  口味;
 
  数量
 
  
  预定订单;
+
==专题复习==
  取消订单;
+
*[[商苑面馆:Java程序开发基础]]
  查看订单;
+
*[[商苑面馆:Java面向对象]]
  修改订单;
+
*[[商苑面馆:Java数据库连接]]
  投诉店家;</nowiki>
+
*[[商苑面馆:Windows图形界面设计]]
 
 
*面馆老板建立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类建立查询方法 ?根据面名去查询特定产品的价格和数量。
 
 
 
===字符串===
 
<nowiki>package happy0319;
 
 
 
public class Test {
 
 
 
public static void main(String[] args) {
 
// TODO Auto-generated method stub
 
        String s1 = "意大利空心面";
 
        String s2 = new String("老北京炸酱面");
 
       
 
        //获取字符串的长度
 
        System.out.println(s1.length());
 
        //比较字符串是否相等
 
        if(s1.equals(s2)) {
 
        System.out.println("这两个字符串相等");
 
        }
 
        //获取指定位置的字符
 
        System.out.println(s1.charAt(3));
 
       
 
        //获取字符第一次出现的位置
 
        System.out.println(s2.indexOf("炸酱面"));
 
        //获取字符串的某个子串
 
        System.out.println(s2.substring(2,4));
 
        //拆分字符串
 
        String s3="主食 炸酱面";
 
        String [ ] data = new String[2];
 
        data = s3.split(" ");
 
        System.out.println(data[0]);
 
       
 
        String s6 = s2.replace("老北京","老济南");
 
        System.out.println(s2+"一碗!");
 
        System.out.println(s6+"一碗!");
 
       
 
       
 
}
 
 
 
}
 
</nowiki>
 
 
 
==任务五 JAVA面向对象编程(二)==
 
===方法重载===
 
在这一个类FoodSet中,我们重载了两个方法:search(String s)和search(double price),分别实现按名称搜和按价格搜。
 
  
<nowiki>public class FoodSet {
+
*[[商苑面馆:Java命令行版]]
    private Noodle[] n;//食物数组
+
*[[商苑面馆:Java web网页版]]
    private int num;//数组的个数
+
*[[商苑面馆:Java程序桌面版]]
   
+
*[[商苑面馆:Java程序安卓版]]
    public FoodSet(Noodle[] n,int num ){
 
    this.n = n;
 
    this.num = num;
 
    }
 
    //按名称搜
 
    public Noodle search(String s){
 
    for(int i=0;i<this.n.length;i++){
 
    if(n[i].getName().equals(s)){
 
    return n[i];
 
    }
 
    }
 
    return null;
 
    //return new Noodle();
 
    }
 
   
 
    //按价格搜
 
    public Noodle search(double price){
 
   
 
    for(int i=0;i<this.n.length;i++){
 
    if(n[i].getPrice() <price){
 
    return n[i];
 
    }
 
    }
 
    return null;
 
    //return new Noodle();
 
    }
 
    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());
 
       
 
        //按名称搜索
 
        Noodle n01 = f.search("刀削面");
 
        if(n01 != null) {
 
          System.out.println("叫刀削面的餐品为:"+n01.toString());
 
    }else {
 
    System.out.println("对不起,我们店现在没有这种面");
 
    }
 
       
 
        //按价格搜索
 
        Noodle n02 = f.search(12);
 
        if(n02 != null) {
 
          System.out.println("价格低于12的面为:"+n02.toString());
 
    }else {
 
    System.out.println("对不起,我们店现在没有这种面");
 
    }
 
    }
 
  
}</nowiki>
+
==附加==
 +
*[[商苑面馆:类一览表]]

2019年5月26日 (日) 12:53的最新版本

环境准备

初识JAVA语言

JAVA程序开发基础

变量和表达式

智能决策:选择结构


重复迭代:循环结构

知识点链接1:

拓展与提高:Java的循环嵌套

数据的存储--数组

拓展:Java的Arrays类Java数组的复制

程序调试

JAVA面向对象程序编程

类和对象

成员变量的完善

拓展:

方法重载

继承和多态


接口和多态

JAVA对象数组

Java对象数组

Java字符串

数据存储——集合和文件

集合

文件

异常处理

数据库访问技术

连接数据库

更新数据库表中数据

查询数据库中数据


MVC设计思想

用户功能

商品功能

购物车功能

Windows应用程序开发

Windows应用程序基本结构

拓展:

Windows窗体事件处理机制


专题复习

附加