Java程序设计(基础)- 概述

Java程序设计(基础)- 概述

Java基础

一、Java特点

Java之Java特点

二、Java工作方式

  1. 编写源代码。列入存为 Dome.java

  2. 编译器。 执行javac来编译源代码。编译器会检查错误。

  3. 如果程序没有错误,编译器产生编译文件Dome.class文件。这个编译文件由字节码组成。这个编译文件与平台无关

  4. 启动JVM(Java虚拟机),运行Dome.calss. JVM将字节码转换为平台能理解的形式来运行。

三、Java开发工具

Java开发工具

四、Java源程序结构

  • 1.package语句

java编译器为每个类生成一个字节码文件,且文件名与类名相同,这就会带来一个问题:同名的类会发生冲突。

所以package的两个主要作用就呼之欲出了:管理类,解决命名冲突。
例如:

package com;
public class Test{}
package cn;
public class Test{}

虽然以上两个类同名,但是并不会出现命名冲突;也可以理解为其实包名就相当于一个人的姓氏,而类名就相当于一个人的名;而一个人的姓名是姓+名;所以以上两个类的全称分别是:com.Test、cn.Test;当然就不会出现命名冲突了;
一般地,我们将具有相同功能的类放在一个package中。

  • 2.import语句

import 代表此类中需要引入和封装的包,一般置顶。

1,加载已定义好的类或包
2,导入支持类(可以是JDK基础类或者自己编写的类),可以供本类调用方法和属性。

import导入声明可分为两种:

1,单类型导入(single-type-import) 例:import java.util.ArrayList;  
2,按需类型导入(type-import-on-demand)   例:import java.util.*;

Import的使用主要是为了偷懒。Java为了解决命名冲突使用了package来管理类,那么问题就来了,如果在写代码的时候都使用类的全称,例如一下这样:

java.io.InputStream is = java.lang.System.in;
java.io.InputStreamReader isr= new java.io.InputStreamReader(is);
java.io.BufferedReader br = new java.io.BufferedReader(isr);

这样的代码看起来确实不是那么舒服,写起来更不舒服;所以我们使用了import,只需要在类声明前导入相关包:

   import java.lang.System;
   import java.io.InputStream;
   import java.io.InputStreamReader;
   import java.io.BufferedReader

代码就清爽多了:

 InputStream = System.in;
 InputStreamReader isr = new InputStreamReader(is);
 BufferedReader br = new BufferedReader(isr);

所以有人说import的使用就是一种偷懒的做法,这一点,我并不否认;

Import后出现命名冲突,在使用Import偷懒的时候也会出一些问题;
例如:
有人在同时import java.awt.*;import java.util.*后,在代码里面使用List,这个时候就炸锅了,因为这两个下面都有List,编译器就蒙圈了,它不知道,你要使用哪一个List;所以这个时候就要指定清楚,你具体使用哪一个。比如Java.util.List;这样编译器就知道了。

import可以使用通配符*,* 代表某package下所有的class,不包括子目录。看到了吧,就是说*只能导入类不能导入子目录,比如 import java.awt.*之后,你还是不能使用 java.awt.event下面的类,因为event是个子包啊,这个子包下面的类,*就无能为力了。现在知道为什么不能,直接import Java.*了吧。

总之,在使用import的时候,最好还是使用单类型导入,总结起来好处有两个:
(1)编译速度:虽然无论是哪种导入都不影响Java代码执行效率,但是在一个很大的项目中,它们会极大的影响编译速度.
(2)命名冲突:解决避免命名冲突问题的答案就是使用全名.而按需导入恰恰就是使用导入声明初衷的否定.

  • 3.类/接口定义部分

类或者定义部分就是Java源程序的主体了:
类定义

[修饰符]class 类名[extends 父类] [implements 接口名]{[各种属性][各种方法]}

例如:

public class SearchDaoImpl extends BaseSearchDaoImpl implements SearchDao {
   protected final Log LOGGER = LogFactory.getLog(getClass());
   SearchConfigService searchConfigService;
   public SearchPage findPage(SearchPageable searchPageable) {
       return null;
   } 

接口定义

[修饰符] interface 接口名 [ extends 父接口] {[各种常量][各种方法的声明]}

例如:

public interface TipDao extends BaseDao<Tip, Long> {
    boolean termExists(String term);
}

注:

一个java源程序至多只能有一个公共类的定义。

若java源程序有一个公共类的定义,则该源文件名字必须与该公共类的名字完全相同。

若源程序中不包含公共类的定义,则该文件名可以任意取名。

若一个源程序中有多个类定义,则在编译时将为每个类生成一个。class文件。

五、Java注释

单行注释:// 注释内容
多行注释:/… 注释内容…/
文本注释:/**… 注释内容…*/

这种注释可以用来自动地生成文档。在JDK中有个javadoc的工具,可以由源文件生成一个HTML文档。使用这种方式注释源文件的内容,显得很专业,并且可以随着源文件的保存而保存起来。也就是说,当修改源文件时,也可能对这个源代码的需求等一些注释性的文字进行修改,那么,这时候可以将源代码和文档一同保存,而不用再另外创建一个文档。

文档注释位置
(1)类注释。类注释用于说明整个类的功能、特性等,它应该放在所有的“import”语句之后,在class定义之前。
这个规则也适用于接口(interface)注释。
(2)方法注释。方法注释用来说明方法的定义,比如,方法的参数、返回值及说明方法的作用等。方法注释应该放在它所描述的方法定义前面。
(3)属性注释。默认情况下,javadoc只对公有(public)属性和受保护属性(protected)产生文档——通常是静态常量。
(4)包注释。类、方法、属性的注释都直接放到Java的源文件中,而对于包的注释,无法放到Java文件中去,只能通过在包对应的目录中添加一个package.html的文件来达到这个目的。当生成HTML文件时,package.html文件的和部分的内容将会被提取出来当做包的说明。关于包注释,后面还会有更进一步的解释。
(5)概要注释。除了包注释外,还有一种类型的文档无法从Java源文件中提取,就是对所有类文件提供概要说明的文件。同样的,也可以为这类注释单独新建一个HTML文件,这个文件的名字为“overview.html”,它的和标记之间的内容都会被提取。
·@author:作者。
·@version:版本。
·@docroot:表示产生文档的根路径。
·@deprecated:不推荐使用的方法。
·@param:方法的参数类型。
·@return:方法的返回类型。
·@see:用于指定参考的内容。
·@exception:抛出的异常。
·@throws:抛出的异常,和exception同义

Java设计基础及面向对象导向

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106719.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Qtum量子链新官网全面升级,正式上线!

    Qtum量子链新官网全面升级,正式上线!

  • 无法创建文件夹或文件问题的解决的方法

    无法创建文件夹或文件问题的解决的方法

    2021年12月14日
  • PyQuery

    PyQueryPython崔老师爬虫课程听课笔记。

  • 硬盘恢复分区_恢复分区和efi系统分区怎么删除

    硬盘恢复分区_恢复分区和efi系统分区怎么删除Windows系统在安装的时候,会自动为我们的磁盘划分一个恢复分区和一个EFI分区。如果后面不打算再用这些分区的时候,却发现无法删除。本文将提供解决方法。因为误操作会导致数据丢失,所以我将两种不同的解决方法分开成两篇文章以避免干扰:EFI分区/恢复分区不可删除?你需要使用命令行了(配合鼠标操作)EFI分区/恢复分区不可删除?你需要使用命令行了(全命令行操作)本文内容无法删…

  • win10php环境配置教程,win10php环境搭建详细教程

    win10php环境配置教程,win10php环境搭建详细教程大家在将系统更新为Win10系统后,对php环境搭建方法并不是很清楚。那么win10php环境搭建要怎么操作呢?其实win10php环境搭建的方法跟Win7/Win8.1系统的php环境搭建是相同道理的。如果还不懂win10php环境搭建的话,就看看小编带来的win10php环境搭建详细教程吧!首先,到微软官网下载符合系统位数的Apache和PHP一、安装并配置ApacheApache版本:Apa…

  • DSP CCS软件仿真

    以前的学习和工作没有使用过DSPCCS软件仿真,一般都是VC仿真好了直接移植到DSP进行硬件仿真的,最近帮别人调试一个程序,别人用的是软件仿真,自己也要用软件仿真来帮忙调试,因此就将这一过程记录下来了,以备以后查看。1设置CCS      打开CCSSetup,在Family中选择CPU系列,这里选择C64xx,Platform选择simulator(软件仿真),在Available

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号