作业以及感悟
1、编写一个hello world程序
public class HelloWorld{
// 程序的入口
public static void main(String args[]){
// 向控制台输出信息
System.out.println("我的第一个程序HelloWorld");
在编写Java程序时注意,通常Java中所有的代码必须放在class中, class就是类,上面的程序我们编写了一个叫做HelloWorld的类,而一个类想要执行必须有一个main方法, main方法是程序运行的入口,public static void main(String args[])这句话中除了args这个变量名可以自己定义外,其他的单词不能做任何改变和省略。在main方法中我们输入了一条输出语句System.out.println("欢迎java01班的同学");这句话的目的是向终端也就是显示器输出一条"我的第一个程序HelloWorld"的话。
2、一致一个数组,求子数组之和最大
public class Test
{
static int[] arr = {
1, -2, 3, 10, -4, 7, 2, -5
};// 需要求的数组
static int maxIndex = arr.length - 1;// 数组的最大下标
public static void main(String[] args)
{
findMaxArr2();
System.out.println("\n-------------");
findMaxArr3();
}
static void findMaxArr2()
{
int max = arr[0];// 最大值
int sum;// 求和
int startIndex = 0;
int endIndex = 0;
for (int i = 0; i <= maxIndex; i++)
{
sum = 0;
for (int j = i; j <= maxIndex; j++)
{
sum += arr[j];
if (sum > max)
{
max = sum;
startIndex = i;
endIndex = j;
}
}
}
System.out.println("最大值为:" + max);
printArr(startIndex, endIndex);
}
static void findMaxArr3()
{
int max = arr[0];// 最大值
int sum = 0;// 求和
int startIndex = 0;
int endIndex = 0;
for (int i = 0; i <= maxIndex; i++)
{
if (sum >= 0)
{
sum += arr[i];
}
else
{
sum = arr[i];
startIndex = i;// 最大子数组开始值
}
if (sum > max)
{
max = sum;
endIndex = i;// 最大子数组结束值
}
}
System.out.println("最大值为:" + max);
printArr(startIndex, endIndex);
}
// 根据下标开始结束值,打印数组
static void printArr(int startIndex, int endIndex)
{
for (int i = startIndex; i <= endIndex; i++)
{
System.out.print(arr[i] + " ");
}
}
}
3、字符串操作,讲一个英语句子中的单词颠倒顺序输出 例如 how are you 输出为 you are how
思路:你已经取到了整个字符串,然后通过空格将这个字符串在分割成一个一个的单词放到一个新的数组中,然后把这个新数组反序打印不就行了。程序如下
#include<stdio.h>
int main(void)
{
char a[200];
char ch;
int i,x,y;
int j;
printf("Enter a sentence:");
for(i=0;i<200;i++)
{
scanf("%c",&a[i]);
if(a[i]=='\n')
{
x=i;
break;
}
}
ch=a[x-1];
printf("%c\n",ch);
//储存终止符
for(i=0;a[i]!=' ';i++);
j=i;
printf("%d\n",j);
for(i=0;i<j;i++)
printf("%c",a[i]);
printf("%c\n",ch);
return 0;
}
4,在主窗口中现实一个hollow world 程序
import java.awt.*;
import java.applet.*;
public class Firstapplet extends Applet {
String s;
public void init() {
s= "hollow world";
}
public void paint(Graphics g){
g.drawString(s, 70, 80);
}
}
我觉得把Java学会的关键一点就是坚持练习。学习Java时每天必须保证一定量的练习,我们老师也说学习编程语言没有捷径可走。真的,只有每天反复操作了,经常写代码了,我们在遇到问题时才有一定的思路。欲速则不达,学习编程语言需要一个比较漫长的阶段,不能一步登天,这需要一个过程,在这个过程中慢慢积累经验,扎实基础。不要以为写出了一个简单的小程序,就认为自己已经学的很好了,这只不过是在你学习编程过程中一个小小的实践。不要满足于现状,要不断完善自己的知识体系,善于总结实践经验。要端正自己的学习态度,是主动去学,而不是被动!提高自学能力。学习编程的秘诀是:编程、编程、再编程。不仅要多实践,而且要快实践。
我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。举个例子,我们都编过Hello World ,一开始很多同学不是很理解为什么main方法一定要这样来定义public static void main(String[] args),能不能不这样写? 我刚也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。我当初学习Java的时候就是这样做的,把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么main方法是这样定义的了。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。