---- 开发方法
结构化开发方法特点:
1、面向功能划分软件结构
2、自顶而下
3、最小的子系统是方法
4、制约了软件的可维护性和扩展性
面向对象开发方法特点:
1、把软件系统看成各种对象和集合
2、系统结构较稳定
3、子系统相对独立
4、软件可重用性、可维护性和扩展性强
---- 面向对象程序设计(object Oriented programming 简称OOP)
对象: 用来描述客观事物的一个实体,由一组属性和方法组成
对象的特征 ---- 属性
属性 --- 对象具有的各种特征
每个对象的每个属性都拥有特定的值
比如:英雄周瑜的属性: 姓名 血量 蓝量等。
对象的特征 --- 方法
方法: 对象执行的操作
比如:英雄周瑜的方法: 攻击其他英雄,攻击防御塔,帮助队友加速等
----- 列出小猫的属性和方法
属性有: 颜色、品种 方法有:跑、叫、咬
----- 类和对象
类 : 具有相同属性和方法的一种对象的集合,
关系: 类是对象的抽象,对象是类的具体。
类是抽象的概念,仅仅是模板,比如:“人”
对象是一个可以看得到、摸得着的具体实体
就像人有体重身高 行为有吃喝衣住,
而对于小明这个对象来说他有180 的身高130 的体重会吃苹果住在翻斗大街102栋
---- java是面向对象的语言
所有的java程序都是以类class为组织单元
关键字是class定义的自定义的数据类型
public class HelloWorld{ public static void main(String[] args){ System.out.println("你好帅"); } }
---- java 类的模板
定义类的步邹:
1、定义类名 2、编写类的属性 3、编写类的方法
public class 类名{
属性类型 属性1;
方法1;
}
要遵循帕斯卡命名规则 类的第一个首字母要大写
属性也叫成员变量 方法也叫成员方法
---- 类图
使用类图来描述类
工具: visio rose
目的: 为了分析和设计类
好处 : 直观、容易理解
---- 创建和使用对象
使用对象的步邹:
1、创建对象: 类名 对象名 = new 类名();
如: School school = new Shcool();
2、引用对象成员:使用“ . ” 来进行操作
引用类的属性:对象名. 属性
引用类的方法: 对象名.方法名
school.name = "坡里中学"; // 给name 属性赋值 school.show(); // 调用show() 方法
----- 类的方法
方法性一个黑匣子,完成某个特定的应用程序功能,并返回结果
类的方法定义类的某种行为(或功能)
---- 方法 的返回值
如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型
返回值只能有一个,如果没有返回值,返回类型为void
在方法中使用return时 就以会跳出这个方法,如果有返回值只能返回一个值
没有返回值就不用了在使用返回值进行接收
------ 方法调用
方法之间允许相互调用,不需要知道方法的具体实现,实现重用提高效率
----- 制作一个简单计算器
1 public class Calc { 2 public int getSum(int num1,int num2){ 3 return num1+num2; 4 } 5 6 7 public double getSum(double num1,double num2,double num3){ 8 return num1+num2+num3; 9 } 10 11 public static void main(String[] args) { 12 Calc calc=new Calc(); 13 System.out.println(calc.getSum(67, 89)); 14 System.out.println(calc.getSum(67, 89,78.4)); 15 } 16 }
--- 查找学员信息
1 /** 2 * 3 * 实现学生信息的管理 4 * 5 */ 6 public class StudentsBiz { 7 String[] names = new String[30]; // 学员姓名数组 8 9 /** 10 * 增加学生姓名 11 * @param name要增加的姓名 12 */ 13 public void addName(String name){ 14 for(int i =0;i<names.length;i++){ 15 if(names[i]==null){ 16 names[i]=name; 17 break; 18 } 19 } 20 } 21 /** 22 * 显示本班的学生姓名 23 */ 24 public void showNames(){ 25 System.out.println("本班学生列表:"); 26 for(int i =0;i<names.length;i++){ 27 if(names[i]!=null){ 28 System.out.print(names[i]+" "); 29 } 30 } 31 System.out.println(); 32 } 33 34 35 /** 36 * 在一定区间查找学生姓名 37 * @param start 开始位置 38 * @param end 结束位置 39 * @param name 查找的姓名 40 * @return find 是否查找成功 41 */ 42 public boolean searchName(int start,int end,String name){ 43 boolean find = false; // 是否找到标识 44 45 // 指定区间数组中,查找姓名 46 for(int i=start-1;i<end;i++){ 47 if(names[i].equals(name)){ 48 find=true; 49 break; 50 } 51 } 52 return find; 53 } 54 }
1 import java.util.Scanner; 2 3 public class TestSearch { 4 /** 5 * 调用带3个参数的方法 6 */ 7 public static void main(String[] args) { 8 StudentsBiz st = new StudentsBiz(); 9 Scanner input = new Scanner(System.in); 10 for(int i=0;i<5;i++){ 11 System.out.print("请输入学生姓名:"); 12 String newName = input.next(); 13 st.addName(newName); 14 } 15 st.showNames(); 16 System.out.print(" 请输入开始查找的位置:"); 17 int s = input.nextInt(); 18 System.out.print("请输入结束查找的位置:"); 19 int e = input.nextInt(); 20 System.out.print("请输入查找的姓名:"); 21 String name = input.next(); 22 System.out.println(" *****查找结果*****"); 23 if(st.searchName(s,e,name)){ 24 System.out.println("找到了!"); 25 } 26 else{ 27 System.out.println("没找到该学生!"); 28 } 29 } 30 }