掌握类和创建对象的关系
开发方法
结构化开发
面向功能划分软件结构
自顶而下
最小的子系统是方法
制约了软件的可维护性和可扩展性
面向对象开发(OOP)
把软件系统看成各种对象的集合
系统结构较稳定
子系统相对独立
软件可重用性、可维护性和可扩展性强
万物皆对象
分类是人们认识世界的一个很自然的过程,在日常生活中会不自觉地进行分类
分类的标准主要为具有的特点和具有的能力。
对象的特征–属性
属性——对象具有的各种特征
每个对象的每个属性都拥有特定值
例如:张浩和李明的年龄、姓名不一样
对象的特征–方法
方法:对象执行的操作
对象
用来描述客观事物的一个实体,由一组属性和方法构成
类和对象
类:具有相同属性和方法的一组对象的集合
类是对象的抽象,对象是类的具体
类和对象的关系
类是抽象的概念,仅仅是模板
比如说:“人”
对象是一个你能够看得到、摸得着的具体实体
定义类
Java是面向对象的语言
所有Java程序都以类class为组织单元
关键字class定义自定义的数据类型
1 2 3 4 5 6
| public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!!!"); } }
|
定义类的步骤:
(1)定义类名
(2)编写类的属性
(3)编写类的方法
定义对象
使用对象的步骤
1、创建对象
2、类名 对象名 = new 类名();
引用对象成员:使用“.”进行以下操作
1、引用类的属性:对象名.属性
2、引用类的方法:对象名.方法名()
定义和调用方法
方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果
类的方法定义类的某种行为(或功能)
如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型。返回值只能有一个。
如果方法没有返回值,返回值类型为void。
方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率 。
1 2 3 4
| public 返回值类型 方法名() { //这里编写方法的主体 }
|
命名规范
命名使用限制为:字母(英文字母、中文字母均可,也就是中英文)、数字、下划线、美元符号。(数字不可以开头)。
其中美元和下划线,在系统中有特殊使用情况,不建议个人使用。
类名
1 2 3
| 类名必须使用有意义的名字。 类名的每个单词的首字母必须大写—帕斯卡命名法。 类名中间不能添加空格,不能使用java关键字。
|
变量-属性
1 2 3 4
| 杜绝使用美元符和下划线作为标识符命名的开头; 必须使用有意义的名字作为变量名(包括缩写); 杜绝使用中文来命名; 不建议使用拼音命名。
|
方法名
一些例子
1 2 3 4 5 6 7 8 9 10 11 12
| public class School { String schoolName; //中心名称 int classNumber; //教室数目 int labNumber; //机房数目 //定义方法 public void showCenter(){ System.out.println(schoolName + "培训学员\n" + "配备:" + classNumber + "教" + labNumber + "机"); } }
|
1 2 3 4 5 6 7 8 9 10 11 12
| public class InitialSchool { public static void main(String[] args) { School center = new School(); System.out.println("***初始化成员变量前***"); center.showCenter(); center.schoolName = "北京中心"; //给schoolName属性赋值 center.classNumber = 10; //给classNumber属性赋值 center.labNumber = 10; //给labNumber属性赋值 System.out.println("\n***初始化成员变量后***"); center.showCenter(); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import java.util.Scanner;
public class Visitor { String name; //姓名 int age; //年龄 public void show(){ Scanner input = new Scanner(System.in); while(!"n".equals(name)){ if(age>=18 && age<=60){ //判断年龄 System.out.println(name + "的年龄为:" + age + ",门票价格为:20元\n" ); }else{ System.out.println(name + "的年龄为:" + age + ",门票免费\n"); } System.out.print("请输入姓名:"); name = input.next(); //给name属性赋值 if(!"n".equals(name)){ System.out.print("请输入年龄:"); age = input.nextInt(); //给age属性赋值 } } System.out.print("退出程序"); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13
| import java.util.Scanner; public class InitialVistor { public static void main(String[] args) { Scanner input = new Scanner(System.in); Visitor v = new Visitor(); //创建对象 System.out.print("请输入姓名:"); v.name = input.next(); //给name属性赋值 System.out.print("请输入年龄:"); v.age = input.nextInt(); //给age属性赋值 v.show(); //调用显示信息方法 } }
|