菜吉吉与java的第一次亲密接触

    从最早的对java一点了解都没有,到现在可以写一些简单的程序,创建一个简单的窗体也有一段时间了。就趁着这个时候对这几天学下来的东西进行一下总结吧。~

     

    首先也是对现在那些比较常见的编程语言进行了一些分类,对比。例如只是面向过程的语言C语言,。。既可以面向对象又是面向过程的C++,还有只是面向对象的C#,java,Objective-C。  也懂得了这些语言在计算机上运行的机理。java与他们不同的就是有一个中间层的存在。

      

        刚开始学习Java,电脑里没有支持java翻译的平台,因此安装了JDK之后在cmd里面输入java指令和javac指令便不再提示“不是内部或外部指令,也不是可运行的程序或批处理文件”。这么说电脑便可以翻译运行java程序啦。

        java程序的编写~每每学一个语言可能第一次写的程序都是"HelloWorld!"吧~这里就对c语言的helloworld和java的helloworld进行一个对比吧!

C语言里面的Helloworld

#include<stdio.h>
void main()
{
 printf("HelloWorld");

}

 

java语言编写的helloworld

 

public class hellow{
      public static void main(String args[]){
            System.out.print("HelloWorld");
      }

}

 

通过比较可以看出:

首先,C语言的程序的编写多了一步编译预处理的命令(#include<stdio.h>),而java的程序中则不需要。其次,c程序中只有一个主函数,java的程序里还定义了一个类,名字为hellow的类。再有就是一些书写的格式的不同,定义主函数的格式不同,输出的方法的格式也不同。就是这些差异。

 

      由于之前学的是c语言,这次接触java,可能会在思想上进行一个编写程序时候的思想从面向过程到面向对象的一个转变。

      举一个例子吧。就用两种语言的函数(C语言里)/方法(java里)的定义与调用的差别来看看面向过程与面向对象的区别吧。

      编写一个学生学习的程序。

c语言中:

 

 #include<stdio.h>

void main()

{

    string name = "XiaoYZ";

     void study(string a)

   {

       printf("%s正在学习",a);

   }

}

程序输出:“XiaoYZ正在学习”

 

在java中编译这个程序

<!--StartFragment -->

     从这两个输出XiaoYZ正在学习的程序的差别就能看出面向对象与面向过程的不同。
首先面向过程的程序中那些过程即相当于c语言中所说的函数,例如刚才所定义的sduty(string a){}函数。而面向对象的程序中重点则是对象,即stu这个Student类的对象,
在主类中调用函数或者给stu付属性的值的时候都要强调是stu在做这些事情,即stu.name="XiaoYZ";    stu.study();
有次课件面向对象与面向过程的差别。
接着,就是有关类与对象的学习。
接着看刚才那个学生学习的程序,很显然其中有两个类:Student类和Test类。而只有一个对象,那就是一个Student类的名字叫做stu的对象。由此课件类与对象的关系即相当于对象是生于一个类中的,这个对象的类型即那个类的类型。在执行一系列操作如付属性值和做学习的那种方法的时候都是对象去做。类是无法完成的!
再深入学习的便是构造方法。
     构造方法这个名次是第一次听说,可就在我写刚才的那个学生学习那个java程序的时候已经下意识的使用到了构造方法。就是这一句指令:
     Student stu = new Student();
这个指令的意思是生成一个Student类型的名字叫做stu的对象。后面使用的方法Student()就是构造方法。可能会有疑问,就是这个方法之前也并没有定义过。就像我们使用study()这个方法的时候,在学生类里面是有定义的,所以可以 stu.study();  这样来让stu去调用他。而那个构造方法既然可以使用,便可以理解成是我们定义一个类的时候会默认给我们生成一个方法,就是
   public Studen(){
}
这种方法。这种没有返回值的方法我们便叫他构造方法。他只是在定义新的对象时候会调用他。他的特点:他是没有返回值的,还有他的名字必须与类名一致,还有就是在调用构造方法的时候我们必须使用new关键字来调用他。
这些就是我对构造方法的理解。
之后我学习到的就是方法的重载。在这里我们就以构造方法的重载为例子了。
方法的重载就是可以理解成再重新写一遍那个方法,而且形参类型,形参数量要与原先定义的方法所不同
还继续看刚才那个程序,在这里我给他做了一些改动:
<!--StartFragment -->

 

这里看,如果我们重载了一个构造方法,增加了一个形参,但此时在Test中调用先前的构造方法则会报错。  这是因为重载了新的构造方法,那么原来的默认的那个构造方法则不存在了。如果还想使用原来的那个构造方法,则需要在定义一次。
 <!--StartFragment -->
这样,在Studen类中定义了两个构造方法,一个是重载的,另一个是由于在Test中想调用默认的那个构造方法,一次又重新写了一边默认的那个。在Test中生成了两个Student的对象stu和stu1,分别调用两个构造方法,再调用study()这个方法,分别输出XiaoYZ在学习和肖一喆正在学习。 
重载可以有很多好处的,比如一个类如果重载很多的构造方法,那么我们在定义新的对象的时候的方也也会变得更加自由,不会是只有默认的构造方法那一种生成新对象的方法。因此合理的使用重载,可以使得程序变得更加的易于使用!
这就是我这菜吉吉最初几天的java学习所得到的一些体会,一些总结。。与大家分享。不当之处还希望大神们指出。。谢谢!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的Java实现文件上传的代码: ```java import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet("/upload") @MultipartConfig(fileSizeThreshold = 1024 * 1024 * 2, // 2MB maxFileSize = 1024 * 1024 * 10, // 10MB maxRequestSize = 1024 * 1024 * 50) // 50MB public class UploadServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 获取上传文件的保存目录 String savePath = request.getServletContext().getRealPath("/WEB-INF/upload"); // 如果目录不存在,需要创建目录 File file = new File(savePath); if (!file.exists() && !file.isDirectory()) { System.out.println("目录不存在,需要创建目录:" + savePath); file.mkdir(); } // 获取上传的文件集合 List<Part> parts = (List<Part>) request.getParts(); for (Part part : parts) { // 获取上传文件的名称 String fileName = part.getSubmittedFileName(); // 将文件保存到服务器 part.write(savePath + File.separator + fileName); } response.getWriter().println("文件上传成功!"); } } ``` 这是一个基于Servlet 3.0规范的文件上传接口,使用了注解`@MultipartConfig`来指定上传文件的大小限制和保存目录。在`doPost`方法中,首先获取上传文件的保存目录,然后通过`request.getParts()`方法获取上传的文件集合,遍历集合将每个文件保存到服务器。最后返回上传成功的提示信息。 需要注意的是,该代码中保存文件的目录路径是相对于Web应用根目录的,需要根据实际情况进行修改。另外,该代码仅供参考,具体实现需要根据业务需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值