1、学好基本语法,弄清Java的特点
十载的隆林网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整隆林建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“隆林网站设计”,“隆林网站推广”以来,每个客户项目都认真落实执行。
学习Java,说白了,就是学习它的语法、功能、结构等。然后按照它的语法编写代码。Java语法是学习的根本。开始学习时,可能有些难懂。没关系,这很正常。多看多问,多实践,慢慢的你就入门了。
2、学习编程规范,编程中坚持遵守
俗话说,无规矩不成方圆。编程是一个将思维逻辑变为代码,让计算机来执行的过程。特别需要规范。无论是变量、函数命名还是代码格式,都需要一致规范。这样便于代码的阅读和修改。代码的规范性,在代码质量中占据着重要的比重。
3、代码尽量写的简单,易于理解
代码的简单性、正确性是最重要的。不要为了追求高效率而写出晦涩难懂的代码。后续阅读和修改代码时,你会为晦涩的代码付出很多代价。记住,尽量将代码写成初学 Java就能读懂的,那么你的代码就十分的优美了。
4、多看别人的代码
对同一种功能的实现,可以有很多种编码方式。多读别人的代码,非常有利用开拓思路,提高编码的灵活性。甚至经常可以从别人的代码中得到启发,产生灵感,创作出优秀的代码。
5、选择一套体系完善的课程
在完善的课程体系中学习非常重要,这有助于你掌握系统的Java编程知识和技能,而且好的课程会帮助你前期打好基础,后期有针对性地使你快速提升,这对Java新手来说十分有效。
6、没有捷径,一定要多动手实践
学习Java,和学数学一样,在学懂理论后,一定要实践。学习Java不能搭便车。有时候,语法和例子很简单,很容易看懂,但到自己动手写的时候,又是另一种感觉。只有多动手编程,哪怕是简单的小程序,重复实现书上简单的例子,也是在积累和提高。动手编码离不开编程工具的支持。
怎么看代码都不完整,五个大括号就只有一个闭合了。其实也是定义的方法,和普通一般方法不一样的地方是,很多参数用final修饰了,就代表赋值一次之后不可变而已,另外,你这里面还用到了不少封装的方法,你得结合具体功能去理解,不然只看表面,是搞不清楚业务逻辑的
这个interface叫接口。这个跟类长的很像的东西其实跟虚基类差不多。里面的成员也都是只声明不实现。为什么要这样?
我靠这个问题要说清楚估计得花几页纸才够劲,长话短说吧。
接口其实是用来解决C++里面的多重继承产生的奇义性和二义性。java和C#都是不允许多重继承的,也就是说一个类的基类只能有一个,但是可以继承多个接口,这样就相当于间接实现了多重继承。
接口的成员在每个继承它的类中都是需要去实现的,因为接口本身只声明,不实现。
所以你的上面的代码就是定义了一个接口LoginService,然后声明了一个方法login,有三个参数,返回值是String类型,大概明白了吗?
用的IDE是Eclipse么?建议用加断点自己跟踪调试,看看循环里的每一步都干了些什么,如下图:
你的第一段代码:
public static void main(String args[]) {
int layer = 4;
for (int i = 1; i = layer; i++) {
for (int k = 1; k = layer - i; k++) {
System.out.print(" ");
}
for (int j = 1; j = (i - 1) * 2 + 1; j++) {
System.out.print("*");
}
System.out.println();
}
int layer1 = 3;
for (int i = 1; i = layer1; i++) {
for (int k = 1; k = (layer1 - i) + 1; k++) {
System.out.print(" ");
}
//这里j++,j会越来越大,死循环了
for (int j = 5; j = (i + 1) * 2 + 1; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
第二段代码:
public class Hello{
public static void main(String args[]) {
int i1, j1;
for (i1 = 1; i1 = 7; i1++) {
for (j1 = 1; j1 = 7; j1++) {
//循环体空,不知道你想干什么
}
if (j1 + i1 == 5 || j1 - i1 == 3 || i1 - j1 == 3 || i1 + j1 == 11) {
System.out.print("*");
}
else {
System.out.print("");
}
}
System.out.println();
}
}
第三段代码:
import java.util.Scanner;
public class Hello{
private int maxNum;
public Hello(int maxNum) {
this.maxNum = maxNum;
}
public void print() {
//第一层for循环,打印maxNum行
for (int i = 1; i = maxNum; i++) {
//第二层for循环,每次执行i次
for (int j = 1; j = i; j++) {
System.out.print(j);
System.out.print("*");
System.out.print(i);
System.out.print("=");
System.out.print(i * j);
System.out.print("\t");
}
System.out.println();
}
}
public static void main(String[] args) {
System.out.print("录入一个整数:");
Scanner input = new Scanner(System.in);
// 没有考虑判断输入的是否是整数。
int maxNum = input.nextInt();
new Hello(maxNum).print();
}
}
在网上搜搜Eclipse怎么断点调试,你就可以看到每次循环都干了什么,一一给你解释太麻烦了。
public static void main(String[] args) {
// TODO 自动生成方法存根
File[] files;
Filter_java fj=new Filter_java(); //这是后面的一个类的对象
boolean hasFiles_java=false; //标识变量
System.out.print("请输入目录名:");
Scanner scan=new Scanner(System.in); //接受一个输入
String str=scan.next(); //读取输入的字符串
File Dir=new File(str); //字符串认为是一个路径
if(Dir.exists()) //如果这个文件夹存在
{
files=Dir.listFiles(); //列出文件夹下所有文件的对象
for(int i=0;ifiles.length;i++) //迭代这些文件
if(fj.accept(files[i])) //通过下面自定义的文件类型过滤器判断这个文件是不是符合要求的文件
{
hasFiles_java=true; //标识变量设为true
getAndSave(files[i]); //这个..保存
}
if(hasFiles_java) //如果为true
System.out.println("已将所有.java文件成功写入指定目录!");
else
System.out.println("该目录下无.java文件");
}
else
System.out.println("目录不存在,请重新输入!");
}
public static void getAndSave(File file_java)
{
try {
File dir=new File("E:\\test"); //要存在这个路径下
if(!dir.exists())
dir.mkdir(); //如果文件夹不存在则创建
byte[] FileData=new byte[2000]; //缓冲字节数组 2000大小
FileInputStream fis=new FileInputStream(file_java); //文件输入流
FileOutputStream fos=new FileOutputStream("E:\\test\\"+file_java.getName()); //文件输出流,要创建新文件
while(fis.read(FileData, 0, FileData.length)!=-1) //从原来的文件读取字节
fos.write(FileData, 0, FileData.length); //循环写入字节
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
class Filter_java implements FileFilter //自定义文件过滤器
{
public boolean accept(File pathname) {
// TODO Auto-generated method stub
if(pathname.getName().endsWith(".java")) //如果文件是java类型的,返回true
return true;
else
return false;
}
代码是从上到下运行的
一、前面的x已经被赋值为整型了,数据类型只要赋值一次就行了,所以后面的x都不用赋值了;
二、while(x!=password){
System.out.println("pleas input the password");
x=sc.nextInt();
}
判断条件是 x != password,只要输入的数据不等于password,也就是20030708,就会一直进入while循环,直到password正确才不进入,然后输出correct,结束程序;
三、代码是从上至下运行的,Scanner sc=new Scanner(System.in)一定是要在int x=sc.nextInt()前面的,因为要先新建一个Scanner类,后面才能引用;
System.out.println("pleas input the password")意思输出到控制台,所以顺序放哪都行,只是它输出pleas input the password,提醒你下一步要输入密码,放在int x=sc.nextInt()前面起到提醒你输入的作用;
x = sc.nexInt(),接收键盘输入赋值给x,然后回到while循环的判断条件x != password ,如果输入的不等于20030708,就再重新接收键盘输入,然后重新赋值给x,一直循环,直到x等于20030708才不循环了;
Scanner是Java中接收键盘输入的一个类;
sc.nextInt, sc 是你新建Scanner类的实例;nextInt是Scanner中的一个方法,意思接收下个输入的Int类型数据;sc.nextInt意思是sc这个实例调用nextInt这个方法