1、面向对象的三大特性:封装,继承、多态
2、开发方法:
A、结构化开发:
a、面向功能划分软件结构
b、自顶面下
c、最小的子系统是方法
d、制约了软件的可维护性和可护展性
B、面向对象开发
a、把软件系统看成各种对象的集合
b、系统结构软稳定
c、子系统相对独立
d、软件可重用性、可维护性和可护展性强
3、万物皆对象
对象:用记来描述客观事物的一个实体,由一组属性和方法构成
对象的特征-----属性
每个对象的每个属性都拥有属性值
对象的行为-----方法
类是一组相同属性和方法的对象的集合
类是对象的抽象化,对象是类的具体化
类是抽象的概念,仅仅是模板
4、类的创建
public class 类名{
//定义属性部份
属性1的类型 属性1;
...
属性N的类型 属性N;
//定义方法部份
方法1;
...
方法N;
}
如下示例:
学校类:
package com.java_2019_1_11; /** * 定义学校类 * @author Administrator * 2019-1-11 */ public class School { //学校名称 String name; //学校地址 String address; //学校人数 int studentNum; /** * 学校的教学方法 */ public void teach() { System.out.println("学校的教学方法!"); } public void showInfo() { System.out.println("学校的名称:"+name+",学校的地址:"+address+",学校的人数:"+studentNum); } }
书本类:
package com.java_2019_1_11; /** * 书本类 * @author Administrator * 2019-1-11 */ public class Book { String name; String author; double price; public void read() { System.out.println("书名是:"+name); System.out.println("作者是:"+author); System.out.println("价格是:"+price); } }
5、使用对类
使用对象的步骤:
A、创建对象
类名 对象名 = new 类名();
如创建School对象:
School sc = new School();
B、引用对象成员:使用“.”
引用类的属性:对象名.属性
引用类的方法:对象名.方法名()
如引用School类的成员:
//引用属性 sc.name = "小小"; sc.address = "厦门思明区"; sc.studentNum = 56; //引用方法 sc.showInfo();
代码与结果示例:
package com.java_2019_1_11; /** * 引用 School类的成员 * @author Administrator * 2019-1-11 */ public class TestSchool { public static void main(String[] args) { School sc = new School(); //引用属性 sc.name = "小小"; sc.address = "厦门思明区"; sc.studentNum = 56; //引用方法 sc.showInfo(); } }
创建多个对象:
package com.java_2019_1_11; public class Person { String name; public void eat() { System.out.println(name+"正在吃饭中......"); } public void clean() { System.out.println(name+"已经带着打扫工具去篮球场了"); System.out.println("你看"+name+"他正在打扫中......."); System.out.println("OK!"+name+"打扫好了!!"); } public void buy() { System.out.println(name+"骑自行车去小卖部了"); System.out.println("他应该是在买水去了"); System.out.println("你看"+name+"回来了!"); } }
使用:
package com.java_2019_1_11; public class TestPerson { public static void main(String[] args) { Person p1 = new Person(); p1.name = "小明"; p1.buy(); Person p2 = new Person(); p2.name = "小陈"; p2.clean(); Person p3 = new Person(); p3.name = "小张"; p3.eat(); } }
结果:
6、类的方法
方法是个“黑匣子”,完成某个特定的应用程 功能,并返回结果
类的方法定义类的某种行为
public 返回值类型 方法名(){
//方法主体
}
方法的要素:返回修饰符、返回值类型、方法名和方法主体
如果方法有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型
返回值只能有一个
如果方法没有返回值,返回值类型为void
作业:
1、做一个简易的+、-、*、/计算器
+、-、*、/计算类如下:
package com.java_2019_1_11; /** * +、-、*、/计算器 * @author Administrator * 2019-1-11 */ public class Add { double num1; double num2; double sum; String fuhao; public double sumAdd(){ /** * 根据运算符判断所要进行的运算 */ switch(fuhao) { case "+": sum = num1 + num2; break; case "-": sum = num1 - num2; break; case "*": sum = num1 * num2; break; case "/": sum = num1 / num2; break; } /** * 返回运算结果 */ return sum; } }
主程序:
package com.java_2019_1_11; import java.util.Scanner; /** * 输入运算符和两个操作数,输出运算结果 * @author Administrator * 2019-1-11 */ public class TestAdd { public static void main(String[] args) { Scanner cxj = new Scanner(System.in); Add add = new Add(); System.out.println("请输入您要做的运算:"); add.fuhao = cxj.next(); System.out.println("请输入您要运算的第一个数:"); add.num1 = cxj.nextDouble(); System.out.println("请输入您要运算的第二个数:"); add.num2 = cxj.nextDouble(); System.out.println("结果为:"); System.out.println(add.num1+add.fuhao+add.num2+"="+add.sumAdd()); } }
结果示例:
A、加法
B、减法
C、乘法
D、除法