A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangjijin 中级黑马   /  2014-7-3 10:21  /  2733 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

4)        方法调用小结
a)        方法之间允许相互调用,不需要知道方法的具体实现,提高了效率

5)        小结

a)        编写手机类(Phone):它可以下载音乐,可以播放这些音乐,可以进行充电
b)        代码:
/*
* Phone.java
* 手机类
*/
public class Phone {
        public void playMusic() {
                System.out.println("正在播放" + downloadMusic());
        }
       
public String downloadMusic() {
                return "好汉歌";
        }

        public void chargeCell() {
                Cell cell = new Cell();
                /* 充电时要调用电池类的方法 */
                cell.brand = "iPhone";
                cell.getPower();
        }
}
1.        代码分析:(红框)
a)        播放下载的音乐的方法
b)        下载的方法
c)        充电的方法
c)        编写电池类(Cell):自动续电
d)        代码:
/*
* Cell.java
* 电池类
*/
public class Cell {
        String brand;
        public void getPower() {
                System.out.println(brand + "电池正在充电。");
        }
}
1.        代码分析:(红框)
a)        声明品牌属性
b)        续电的方法
e)        编写测试类(Test):对手机类进行测试
f)        代码:
/*
* TestPhone.java  测试手机类
*/
public class TestPhone {
        public static void main(String[] args) {
                Phone phone = new Phone();
                phone.playMusic();
                phone.chargeCell();
        }
}
1.        代码分析:(红框)
a)        创建一个手机的对象
b)        调用播放的方法
c)        调用充电的方法
知识点2:带参数的方法[25分钟]
1)        什么是带参数的方法
a)        方法实施时需要接收某个值进行处理
生活中的榨汁机:提供了一个“榨汁”的功能。放什么水果就榨出什么汁来。如果没有放水果进去,就不可能榨出汁来。必须要提供一个被榨的东西才行。这个东西就是方法中的参数。
再比如:我们在ATM机上取钱时,必须输入一个金额,ATM机才会按照我们提供的金额“吐出”钱来。
b)        当方法中功能的实现需要我们提供参数时,在定义方法时就要在括号中加入参数列表。
2)        使用带参数的方法解决实际问题
a)        分成两步:
1.        定义带参数的方法
a)        语法:
public 返回值类型 方法名(参数列表){
        //方法体

1)        四个基本要素:
1.        返回值类型
2.        方法名
3.        参数列表
4.        方法体
2.        调用带参数的方法
a)        调用带参数的方法时,必须在调用时传入参数。
3.        示例:
a)        定义带参数的方法
/**
* 榨汁类
*/
public class Zhazhi {
        /**
         * 榨汁方法
         *
         * @param fruit
         *            水果
         * @return juice 果汁名
         */
        public String zhazhi(String fruit) {
                String juice = fruit + "汁";
                return juice;
        }
}
b)        调用带参数的方法
public class Hello6 {
        public static void main(String[] args) {
                Zhazhi myZhazhi = new Zhazhi();
                String myFruit = "苹果";
                String myJuice = myZhazhi.zhazhi(myFruit);
                System.out.println(myJuice);
        }
}
3)        小结
a)        实现MP3播放器:
1.        播放录入的音乐名称
2.        外放正在播放的歌曲
import java.util.Scanner;
public class MP3 {
        /**
         * 播放
         *
         * @param song
         *            歌曲名称
         * @return 播放的歌曲
         */
        public String play(String song) {
                return song + "......";
        }
        /**
         * 外放
         *
         * @param info
         *            声音
         */
        public void audio(String sound) {
                System.out.println(sound);
        }
        public static void main(String[] args) {
                MP3 mp3 = new MP3();
                System.out.print("想听什么歌? ");
                Scanner input = new Scanner(System.in);
                String song = input.next();
                mp3.audio(mp3.play(song));
        }
}
1.        播放方法:根据歌曲名字,放出歌曲内容
2.        外放方法:把歌曲的内容输出来(输出到控制台)
知识点3:变量作用域[10分钟]
1)        变量作用域
网上的一些资料我们不能下载――因为我们不是会员
银行的后台我们不能进去――因为我们不是银行的工作人员
湖北省省长可以管理整个湖北省,而襄樊市市长只能管理襄樊市,不能管理其他地区,他们有自己的权力范围。
在现实生活中,有许多的资料只能特定的人群才能使用,如果我们不是这个人群的一员,就不能享用。
在JAVA中,这种现象同样存在。
a)        JAVA以类来组织程序。类里面只有两样:类的属性和类的方法
1.        类的属性就是类的成员变量
2.        类的方法就是类的成员方法。
b)        在类的方法中,我们同样可以定义变量:局部变量
c)        全局变量:在类中定义的变量(和方法平级的变量),即成员变量,就是属性
d)        局部变量:在方法中定义的变量,在一个方法中定义的变量,不能在其他方法中使用,只在本方法中起作用
e)        变量声明的位置就决定了变量的作用域
f)        变量作用域确定了可在程序中按变量名访问该变量的区域
g)        区别:
1.        作用域不同:成员变量可以在整个类中使用,局部变量只能在定义变量的方法中使用。
2.        初始值不同:成员变量如果没有初始化,JAVA会给它一个默认值。
JAVA不会给局部变量默认值,局部变量在使用前必须手工初始化。
2)        小结
a)        演示示例:
1.        编写成绩计算类(ScoreCalc)
代码:
/**
* ScoreCalc类
*
* @author zte
* @version 1.0 2010/07/21
*/
public class ScoreCalc {
        int java; // Java成绩
        int html; // C#成绩
        int sql; // DB成绩
        /**
         * 计算总成绩
         *
         * @return total
         */
        public int calcTotalScore() {
                int total = java + html + sql;
                return total;
        }
        /**
         * 显示总成绩
         */
        public void showTotalScore() {
                System.out.println("总成绩是: " + calcTotalScore());
        }
        /**
         * 计算平均成绩
         *
         * @return avg
         */
        public int calcAvg() {
                int avg = (java + c + db) / 3;
                return avg;
        }
        /**
         * 显示平均成绩
         */
        public void showAvg() {
                System.out.println("平均成绩是: " + calcAvg());
        }
}
2.        编写测试类
代码:
import java.util.*;
public class TestScoreCalc {
        public static void main(String[] args) {
                ScoreCalc sc = new ScoreCalc();
                /* 接收成绩 */
                Scanner input = new Scanner(System.in);
                System.out.print("请输入Java成绩:");
                sc.java = input.nextInt();
                System.out.print("请输入THML成绩:");
                sc.html = input.nextInt();
                System.out.print("请输入SQL成绩:");
                sc.sql = input.nextInt();
                /* 计算并输出成绩 */
                sc.showTotalScore();
                sc.showAvg();
        }
}
知识点4:面向对象的编程思维[5分钟]
1)        面向对象的编程思维
import java.util.Scanner;
public class AutoLion {
        public static void main(String[] args) {
                Scanner input = new Scanner(System.in);
                System.out.print("请输入Java成绩:");
                int java = input.nextInt();
                System.out.print("请输入HTML成绩:");
                int html = input.nextInt();
                System.out.print("请输入SQL成绩:");
                int sql = input.nextInt();
                /* 计算并显示输出 */
                int total = java + html + sql;
                double avg = total / 3;
                System.out.print("总成绩:" + total);
                System.out.print("\n平均分: " + avg);
        }
}
a)        类的方法实现某个特定的功能,别的类不需要知道它如何实现!
b)        知道了实现此功能的类和它的方法名,就可以用这个类的对象来直接调用需要的方法,而不用重复写代码!
c)        我们使用对象名来调用对象具有的方法,来完成相应的功能

1 个回复

倒序浏览
可以写成个人博客
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马