Java基本功练习十二(对象和类[定义、实例化、对象数组、类应用开发])
2014-12-17 22:29
573 查看
几个基本的概念
对象
对象代表现实世界中可以明确标识的一个实体,包括状态:state和行为:behavior两方面。使用一个通用类来定义同一类型的对象。
类
类是一个模版、蓝本或者说是合约,用来定义对象的数据域是什么以及方法是做什么的。一个对象是类的一个实例。创建实例的过程叫做:实例化。
对象和类的区别
术语“对象”和“实例”经常可以互换,类和对象之间的关系类似于苹果派配方和苹果派之间的关系。可以用一种配方做出任意多的苹果派来。
UML类图
类的模版和对象的图解可以用统一建模语言(Unified Modeling Language,UML)的图形化符号进行标准化。这种符号话的语言描述类,叫做UML类图。
在类图中,数据域表示为:
dataFieldName:dataFieldType 数据域名:数据域类型
构造方法可以表示为:ClassName(parameterName:parameterType)类名(参数名:参数类型)
方法可以表示为:
methodName(parameterName:parameterType):returnType方法名(参数名:参数类型):返回类型
了解以上概念之后,来看下面的几个示例。
示例一:类的定义与实例化。
运行效果如图:
实现的源代码如下:
示例二:对象数组的使用。
运行效果如图:
实现源代码如下:
示例三:模拟银行创建账户以及账户相关操作的类。
运行效果如图:
实现源代码如下:
总结:学习了对象和类之后,就要会做到以下三个方面:1)设计类并画出UML类图;
2)实现UML中的类;
3)使用类开发应用程序。
使用面向对象的思想开发程序有诸多好处,可以用类来实现其三大特性,抽象、集成、封装。这些对开发大型程序有其他方法不可替代的好处。
对象
对象代表现实世界中可以明确标识的一个实体,包括状态:state和行为:behavior两方面。使用一个通用类来定义同一类型的对象。
类
类是一个模版、蓝本或者说是合约,用来定义对象的数据域是什么以及方法是做什么的。一个对象是类的一个实例。创建实例的过程叫做:实例化。
对象和类的区别
术语“对象”和“实例”经常可以互换,类和对象之间的关系类似于苹果派配方和苹果派之间的关系。可以用一种配方做出任意多的苹果派来。
UML类图
类的模版和对象的图解可以用统一建模语言(Unified Modeling Language,UML)的图形化符号进行标准化。这种符号话的语言描述类,叫做UML类图。
在类图中,数据域表示为:
dataFieldName:dataFieldType 数据域名:数据域类型
构造方法可以表示为:ClassName(parameterName:parameterType)类名(参数名:参数类型)
方法可以表示为:
methodName(parameterName:parameterType):returnType方法名(参数名:参数类型):返回类型
了解以上概念之后,来看下面的几个示例。
示例一:类的定义与实例化。
运行效果如图:
实现的源代码如下:
package Blog; import java.util.Scanner; import javax.swing.*; public class blogTryProject{ //圆类的定义与创建对象(实例化) public static void main(String[] args) { Circle1 circle1 = new Circle1(); System.out.println("The area of the circle of radiun " + circle1.radius + " is " + circle1.getArea()); Circle1 circle2 = new Circle1(10); System.out.println("The area of the circle of radiun " + circle2.radius + " is " + circle2.getArea()); Circle1 circle3 = new Circle1(100); System.out.println("The area of the circle of radiun " + circle3.radius + " is " + circle3.getArea()); circle2.radius = 100; System.out.println("The area of the circle of radiun " + circle2.radius + " is " + circle2.getArea()); } } class Circle1 { double radius; Circle1() { radius = 1.0; } Circle1(double newRadius) { radius = newRadius; } double getArea() { return radius * radius * Math.PI; } }
示例二:对象数组的使用。
运行效果如图:
实现源代码如下:
package oop; import javax.swing.*; public class oopAndObject { //对象数组的使用示例 public static void main(String[]args){ Circle3[] circleArrary; circleArrary = createCircleArrary(); printCircleArrary(circleArrary); } public static Circle3[] createCircleArrary(){ Circle3[] circleArrary = new Circle3[5]; for(int i = 0;i < circleArrary.length;i++){ circleArrary[i] = new Circle3(Math.random()*100); } return circleArrary; } public static void printCircleArrary(Circle3[] circleArrary){ System.out.printf("%-30s%-15s\n","Radius","Area"); for(int i = 0;i < circleArrary.length;i++){ System.out.printf("%-30s%-15s\n",circleArrary[i].getRadius(), circleArrary[i].getArea()); } System.out.println("----------------------------------------------------"); System.out.printf("%-30s%-15s\n","The total area of circles is ",sum(circleArrary)); } public static double sum(Circle3[] circleArrary){ double sum = 0; for(int i = 0;i < circleArrary.length;i++) sum += circleArrary[i].getArea(); return sum; } } class Circle3 { private double radius; private static int numberOfObjects = 0; Circle3() { radius = 1.0; numberOfObjects++; } Circle3(double newRadius) { radius = newRadius; numberOfObjects++; } public double getRadius() { return radius; } public void setRadius(double newRadius) { radius = (newRadius >= 0) ? newRadius : 0; } public static int getNumberOfObjects() { return numberOfObjects; } public double getArea() { return radius * radius * Math.PI; } }
示例三:模拟银行创建账户以及账户相关操作的类。
运行效果如图:
实现源代码如下:
package Blog; import java.util.Date; import java.util.Scanner; import javax.swing.*; public class blogTryProject{ public static void main(String[]args){ Acount ac = new Acount(1122,20000); System.out.println("创建账户后账户 "+ac.getId()+" 余额为:"+ac.getBalance()); ac.setAnnualInterestRate(0.045); ac.withDraw(2500); System.out.println("取款2500后账户 "+ac.getId()+" 余额为: "+ac.getBalance()); ac.deposit(3000); System.out.println("存款3000后账户 "+ac.getId()+" 余额为: "+ac.getBalance()); System.out.println("月利息为: "+ac.getMonthlyInterestRate()); System.out.println("账户 "+ac.getId()+" 开户日期为: "+ac.getDateCreated()); } } class Acount{ private int id; private double balance; private double annualInterestRate; private Date dateCreated; Acount(){ id = 0; balance = 0; dateCreated = new Date(); } Acount(int newID,double newBalance){ id = newID; balance = newBalance; dateCreated = new Date(); } public int getId(){ return id; } public void setId(int newID){ id = newID; } public double getBalance(){ return balance; } public void setBalance(double newBalance){ balance = newBalance; } public double getAnnualInterestRate(){ return annualInterestRate; } public void setAnnualInterestRate(double newRate){ annualInterestRate = newRate; } public String getDateCreated(){ return dateCreated.toString(); } public double getMonthlyInterestRate(){ return annualInterestRate / 12.0; } public void withDraw(double outBalance){ balance -= outBalance; } public void deposit(double inBalance){ balance += inBalance; } }
总结:学习了对象和类之后,就要会做到以下三个方面:1)设计类并画出UML类图;
2)实现UML中的类;
3)使用类开发应用程序。
使用面向对象的思想开发程序有诸多好处,可以用类来实现其三大特性,抽象、集成、封装。这些对开发大型程序有其他方法不可替代的好处。
相关文章推荐
- Portal-Basic Java Web 应用开发框架:应用篇(十二) —— Action Convention
- Java基本功练习十五(关于对象的思考【ATM机模拟、贷款类、堆栈类、选课类的实现】)
- Portal-Basic Java Web 应用开发框架:应用篇(十二) —— Action Convention
- Java开发练习2,类与对象
- Portal-Basic Java Web 应用开发框架:应用篇(十二) —— Action Convention
- Java面向对象接口的应用实例练习
- 第一天:Java源码级实战速成(通过动手实战类、对象等,通过Spark和Hadoop案例代码和源码解析具体指知识的应用、深度详解匿名接口在Spark开发中的运用)
- 06-03 Java 面向对象思想概述、开发设计特征,类和对象的定义使用,对象内存图
- JAVA程序员基本功:开发实现类隐藏及应用
- 实习二 对象中间件--CORBA开发练习 java实现
- java反射应用-配置文件的方式实例化对象
- Strategy 策略模式 在 Spring 开发中的应用 包括事务管理,日志管理(logger),IoC容器根据bean定义的内容实例化等
- JavaWeb开发之十二:JSP九大内置对象
- javaweb_08-ServletConfig对象和它在开发中的应用场景
- Portal-Basic Java Web 应用开发框架:应用篇(十二) —— Action Convention
- QuickCSharp框架开发(13)------定义一个IAuthenticationProvider接口、将实现了接口的实例化对象转换成接口
- 从Java到Go面向对象--类的定义和实例化对象
- Borland JBuilder2006新功能加速Java应用开发
- Java扮演嵌入式应用开发主角
- Java.util包简介并教您如何开发应用之二 (2)