读java教程有感_学Java有感(一)

a4506db9f4b3ac3925d6a85751bf2eba.png

这个图里面的-,+还有个#是用来表示该属性或方法的可见性的。具体来说

-:表示private 私有属性;

+:表示public 公共属性;

#:表示protected(friendly)中等;

这个表格就表示Employee类里三个私有的对象和一个公有的方法。

再回到第三次作业,同样的,我也举个例子:

定义一个代表一元二次方程ax​2​​+bx+c=0的类QuadraticEquation,其属性为三个系数a、b、c(均为私有属性),类中定义的方法参考main方法中的代码。main方法源码:

import java.util.Scanner;

public class Main {

public static void main(String[] args){

Scanner input = new Scanner(System.in);

double a = Double.parseDouble(input.next());

double b = Double.parseDouble(input.next());

double c = Double.parseDouble(input.next());

if(a== 0){

System.out.println("Wrong Format");

System.exit(0);

}

//create a QuadraticEquation object

QuadraticEquation equation = new QuadraticEquation(a, b, c);

//get value of b * b - 4 * a * c

double discriminant = equation.getDiscriminant();

System.out.println("a=" + equation.getA() +

",b=" + equation.getB() +

",c=" + equation.getC()+":");

if (discriminant < 0) {

System.out.println("The equation has no roots.");

}

else if (discriminant== 0)

{

System.out.println("The root is " +

String.format("%.2f", equation.getRoot1()));

}

else // (discriminant >= 0)

{

System.out.println("The roots are " +

String.format("%.2f", equation.getRoot1())

+ " and " + String.format("%.2f", equation.getRoot2()));

}

}

}

class QuadraticEquation{

//your code

}

import java.util.Scanner;

public class Main {

public static void main(String[] args){

Scanner input = new Scanner(System.in);

double a = Double.parseDouble(input.next());

double b = Double.parseDouble(input.next());

double c = Double.parseDouble(input.next());

if(a == 0){

System.out.println("Wrong Format");

System.exit(0);

}

//create a QuadraticEquation object

QuadraticEquation equation = new QuadraticEquation(a,b,c);

//get value of b * b - 4 * a * c

double discriminant = equation.getDiscrtminant(a,b,c);

System.out.println("a=" + equation.getA() +

",b=" + equation.getB() +

",c=" + equation.getC()+":");

if (discriminant < 0) {

System.out.println("The equation has no roots.");

}

else if (discriminant == 0)

{

System.out.println("The root is " +

String.format("%.2f", equation.getRoot1()));

}

else

{

System.out.println("The roots are " +

String.format("%.2f", equation.getRoot1())

+ " and " + String.format("%.2f", equation.getRoot2()));

}

}

}

class QuadraticEquation{

QuadraticEquation(double a,double b,double c)

{

A=a;

B=b;

C=c;

}

private double A,B,C,Root1,Root2;

public double getRoot1() {

double root1=(-B+Math.sqrt(B*B-4*A*C))/2*A;

return root1;

}

public double getRoot2() {

double root2=(-B-Math.sqrt(B*B-4*A*C))/2*A;

return root2;

}

public double getA() {

return A;

}

public void setA(double a) {

A = a;

}

public double getB() {

return B;

}

public void setB(double b) {

B = b;

}

public double getC() {

return C;

}

public void setC(double c) {

C = c;

}

public static double getDiscrtminant(double a,double b,double c){

double x;

x=b*b-4*a*c;

return x;

}

}

答案不唯一。

总结:

通过这三次的作业,我加深了对Java的理解,了解到了一个新的知识层面。如果要让我来点评一下这三次作业,我觉得它们更像一个个阶梯。第一次作业主要介绍的类,方法,对象;第二次作业则跟深一步,要求你学会在类里面新建并运用方法;最后的第三步,则是让你新建类,不同的类里面有不同的方法,不同的类之间方法的调用,传参等等。一步一步,由浅至深,让你理解Java它本身独特的特性,并让你喜欢上这个简单的明了的特性。

在这三次作业中我也遇到了很多的问题,接下来由我一一为大家来说明,看你有没有遇到。

1.类,对象,方法

按照我的理解,类你可以理解为一个大的统称,比如说:人,树,车,狗等等;而对象则是具体到它们之间的每一个,比如一个叫张三的人,一条叫小白的狗,一棵特指的树;而方法就是这个特指的对象干了什么事,比如张三去上厕所,小白去吃饭..这样的话是不是很好理解?

2.如何创建类

在Java中类呗规定用class来创建

比如:class Name;这样就新建了一个叫Name的类。当然在class前面你还可以有修饰比如;public。在这里要注意,类的名字必须是以驼峰方式来命名,就是首字母大写。

3.如何创建对象

创建对象的格式:[public|private|protected] [static] [final] 类型 方法名(形参){

方法体;

return表达式;}

其中如果是viod修饰,则改方法不用返回值,若不是的的话则需要return一个值(不能返回表达式);

4.如何定义属性

定义属性的格式:[ public | private | protected ] [ static ] [ final ] 类型 成员名

在这里我附上一些特殊的类型:

Boolean类型,成员变量的默认值是false。

Int类型,成员变量的默认值是0。

Double类型,成员变量的默认值是0.0。

String类型,成员变量的默认值是null。

Char类型,成员变量的默认值是\u0000

你们可能会发现,在属性和方法里面都有一个static,这里就有一个新知识,静态和非静态。

静态变量:从属于类,可以在不同的对象里面调用

OO思想在我理解来,就是方便修改以前的代码,因为随着时代快速的发展,你前几个月的程序,或许到现在就不能使用了,随之而来产生的思想就是面向对象思想。

面向对象:

一种基于面向过程的新编程思想,顾名思义就是该思想是站在对象的角度思考问题,我们把多个功能合理放到不同对象里,强调的是具备某些功能的对象。

具备某种功能的实体,称为对象。面向对象最小的程序单元是:类。面向对象更加符合常规的思维方式,稳定性好,可重用性强,易于开发大型软件产品,有良好的可维护性。

在软件工程上,面向对象可以使工程更加模块化,实现更低的耦合和更高的内聚。(在此注明非本人所写,为官方概念,只做引用)

它有三大特征:1:封装(Encapsulation) 2:继承(Inheritance) 3:多态(Polymorphism)具体我就不解释了,大家可以自行百度。

面向对象和面向过程最大的区别就是上面的三大特征。在此我经查询资料而知:面向对象并不绝对的优于面向过程!

对于面向对象这个思想来说,我有很深的体悟,因为老师布置的三次作业,第二次与第三次之间有着很深的联系,因为第三次作业是一个综合作业,可以用的第二次作业当中的很多代码,而我因为自身的编译,导致很多代码不能运用在新的题目当中,只能重新编写。十分苦恼,所以大家一定要注意自己的程序的设计。

四.测试的理解与实践

对于程序设计来说,测试当然是十分重要的一环。一个完美的代码,应该满足用户所提出的各种问题,并且高效,快速的完成。

如果让我来设计测试程序,我会依照题目,从一些常例到特例,以及编译速度等方向来测试代码,以求让代码完美的满足题目要求。

五.课程建议

建议老师多指点一些网站去学习Java有关知识。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值