首页编程java编程java函数 java基础菜鸟教程

java函数 java基础菜鸟教程

编程之家2026-05-301071次浏览

大家好,关于java函数很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于java基础菜鸟教程的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

java函数 java基础菜鸟教程

java的输入函数是什么怎么使用忘高手指点

用java.util.Scanner类,代码如下

import java.util.*;

public class Scan{

public static void main(String[] args){

Scanner scanner= new Scanner(System.in);

int i= scanner.nextInt();

java函数 java基础菜鸟教程

System.out.print(i);

}

}

Java编程初步傻瓜书

零基础学Java电子教程附随书光盘

java函数 java基础菜鸟教程

数据结与算法 Java语言版

精通JBuilder 2005中文版高清PDF+随书光盘

程序天下:J2EE整合详解与典型案例电子教程+随书光盘

JSF JavaServer Faces in Action

Spring in Action(第二版)

Manning jQuery in Action

Spring In Action

AspectJ in Action

Hibernate In Action

Struts in Action

Lucene in Action

Wrox出版 Beginning Spring Framework 2

Java Extreme Programming Cookbook

Java Programming Cookbook

Beginning Java Objects

Building Java Enterprise App

Ant: The Definitive Guide

Better Faster Lighter Java

Hibernate Reference 3.1

Pragmatic Version Control using CVS

Pragmatic Project Automation

jQuery Reference Guide

Java 2核心技术卷1&卷2 CHM版

Wrox Professional Java JDK 6 Edition

Java 2宝典

侯捷java编程思想 PDF中文版

Learning Java(第三版)

The Java Language Specification

Beginning Java Programming for Dummies第二版

Java 2核心编程

Java How to Program(第六版)

Java All-In-One案头参考傻瓜书(第二版)

21天自学 Java 6(2007年5月更新出版) PDF

Java咖啡馆

Thinking in Java(第四版)

深入学习JFC SWING- Java基础类组件集

J2EE全实例教程

Java信息系统设计与开发实例(第二版)

Java优化编程

Effective Java

Java信息系统设计与开发实例(第二版)

Tricks of the Java Programming

Wrox Professional Java Native Interfaces with SWT JFace

Java Swing第二版 PDF文字版 O'Relliy出版

O'Reilly- Java Database Programming with JDBC

JDBC与Java数据库程序设计

Learning JQurey(2007年7月最新出版)

J2EE with BEA WebLogic Server

Pragmatic Unit Testing in Java with JUnit

Wiley出版 J2EE 1.4 Bible

J2EE设计开发编程指南

Java Web Services简明教程

O'Reilly Java and XML(第二版PDF)

O'Reilly Java and XML(第三版PDF)

Java技术XML高级编程

Java Reflection in Action [MANNING]

Java Puzzler(Java解惑)

Java Database Best Practices

Struts: The Complete Reference

Log4j The Complete Manual

Programming for the Java Virtual Machine

Expert One-on-One J2EE Design and Development

Expert One-on-One J2EE Development without EJB

JBoss- A Developer's Notebook

The Java Programming Language(第四版)

Professional Java Development with the Spring Framework

Core Java Server Faces第二版

精通Enterprise JavaBeans

Enterprise JavaBeans EJB第四版

J2EE应用与BEA WebLogic Server(第二版PDF)

O'Reilly Java Web Services

Ant权威指南

Ajax和Java框架高级编程

Java Web Services简明教程

Cross-Platform Web Services Using C# and Java

O'Reilly Ajax on Java

O'Reilly Java and XSLT

O'Reilly Java and XML Binding

O'Reilly Java and SOAP

Design Patterns Java Companion

J2EE Java黑客大曝光开发安全的Java应用程序

J2ME API速查手册

精通J2ME无线编程

J2ME开发大全

Beginning J2ME从入门到精通第三版

Beginning JBoss Seam从入门到精通

Beginning Hibernate从入门到精通

Java网页开发的艺术

Java编程高手

Java 5.0 Tiger程序高手秘笈

Java2网络协议技术内幕(附源码)

Using Enterprise JavaBeans 2

Java技术实用教程

企业级Java安全性(构建安全的J2EE应用)

Java语言集成开发环境Eclipse中文教程

NetBeans IDE 5.5企业版高级开发教程

Using Enterprise JavaBeans 2

Borland JBuilder Developer's Guide

Eclipse [O'Reilly]

Eclipse精要与高级开发技术

Code Generation in Action

Java 6 3D游戏开发

java中的函数调用怎么理解

函数调用可以理解为:

你想去买一样东西,这时,可能会叫你的秘书去帮你买它。

您的秘书可能不熟悉市场,这时她委任采购部门去帮她购买你需要的东西。

不好意思,昨天有事匆忙留下一段,还有一段没有完成。。。

在JAVA中怎么使用什么时候能用到?

我就大致的回答一下吧。如果不合心意,还请谅解!

OOP强调低耦合,高内聚。单一职责原则。还有许多模式以及原则,使你的系统富有弹性,易于扩展,修改,维护。

内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。

所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。)对于低耦合,粗浅的理解是:

一个完整的系统,模块与模块之间,尽可能的使其独立存在。

也就是说,让每个模块,尽可能的独立完成某个特定的子功能。

模块与模块之间的接口,尽量的少而简单。

如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。

这样有利于修改和组合。[1]

引用:

代码的话,我就不多说了。自己估量估量,就知道是怎么回事了。

Java中构造函数是什么它应该具体怎么用呢

是构造方法,不是构造函数,后者是C++的概念

首先要注意的是Java的构造器并不是函数,所以他并不能被继承,这在我们extends的时候写子类的构造器时比较的常见,即使子类构造器参数和父类的完全一样,我们也要写super就是因为这个原因。

构造器的修饰符比较的有限,仅仅只有public private protected这三个,其他的例如任何修饰符都不能对其使用,也就是说构造器不允许被成名成抽象、同步、静态等等访问限制以外的形式。

因为构造器不是函数,所以它是没有返回值的,也不允许有返回值。但是这里要说明一下,构造器中允许存在return语句,但是return什么都不返回,如果你指定了返回值,虽然编译器不会报出任何错误,但是JVM会认为他是一个与构造器同名的函数罢了,这样就会出现一些莫名其妙的无法找到构造器的错误,这里是要加倍注意的。

在我们extends一个子类的时候经常会出现一些意想不到的问题,我在这里说一些和构造器有关的。

首先说一下Java在构造实例时的顺序(不讨论装载类的过程)

构造的粗略过程如下

1、分配对象空间,并将对象中成员初始化为0或者空,java不允许用户操纵一个不定值的对象。

2、执行属性值的显式初始化(这里有一点变化,一会解释,但大体是这样的)

3、执行构造器

4、将变量关联到堆中的对象上

介绍一下准备知识,以备一会来详细说明这个的流程

this() super()是你如果想用传入当前构造器中的参数或者构造器中的数据调用其他构造器或者控制父类构造器时使用的,在一个构造器中你只能使用this()或者super()之中的一个,而且调用的位置只能在构造器的第一行,在子类中如果你希望调用父类的构造器来初始化父类的部分,那就用合适的参数来调用super(),如果你用没有参数的super()来调用父类的构造器(同时也没有使用this()来调用其他构造器),父类缺省的构造器会被调用,如果父类没有缺省的构造器,那编译器就会报一个错误,注意此处,我们经常在继承父类的时候构造器中并不写和父类有关的内容,此时如果父类没有缺省构造器,就会出现编译器添加的缺省构造器给你添麻烦的问题了哦。例如:Class b extends a{public b(){}}就没有任何有关父类构造器的信息,这时父类的缺省构造器就会被调用。

举个SL-275中的例子

1 public class Manager extends Employee{

2 private String department;

3

4 public Manager(String name, double salary, String dept)

{

5 super(name, salary);

6 department= dept;

7}

8 public Manager(String n, String dept){

9 super(name);

10 department= dept;

11}

12 public Manager(String dept){//这里就没有super(),编译器会自动地添加一个空参数的缺省super构造器,此时如果Employee类中没有空参数的缺省构造器,那就会导致一个编译错误

13 department= d;

14}

15}

你必须在构造器的第一行放置super或者this构造器,否则编译器会自动地放一个空参数的super构造器的,其他的构造器也可以调用super或者this,调用成一个递归构造链,最后的结果是父类的构造器(可能有多级父类构造器)始终在子类的构造器之前执行,递归的调用父类构造器

在具体构造类实例的过程中,上边过程的第二步和第三步是有一些变化的,这里的顺序是这样的,分配了对象空间及对象成员初始化为默认值之后,构造器就递归的从继承树由根部向下调用,每个构造器的执行过程是这样的:

1、Bind构造器的参数

2、如果显式的调用了this,那就递归调用this构造器然后跳到步骤5

3、递归调用显式或者隐式的父类构造器,除了Object以外,因为它没有父类

4、执行显式的实例变量初始化(也就是上边的流程中的第二步,调用返回以后执行,这个步骤相当于在父构造器执行后隐含执行的,看样子像一个特殊处理)

5、执行构造器的其它部分

这里的步骤很重要哦!!!!!

从这个步骤中可以很明显的发现这个实例初始化时的递归调用过程,估计看过这个你应该能够理解这个递归构造链是怎么样回事了。

这里还是给出SL-275中的一个例子,让你充分理解一下这个递归的过程。

public class Object{

...

public Object(){}

...

}

public class Employee extends Object{

private String name;

private double salary= 15000.00;

private Date birthDate;

public Employee(String n, Date DoB){

// implicit super();

name= n;

birthDate= DoB;

}

public Employee(String n){

this(n, null);

}

}

public class Manager extends Employee{

private String department;

public Manager(String n, String d){

super(n);

department= d;

}

}

在创建Manager("Joe Smith","Sales"):时,步骤如下

0 basic initialization

0.1 allocate memory for the complete Manager object

0.2 initialize all instance variables to their default values(0 or null)

1 call constructor: Manager("Joe Smith","Sales")

1.1 bind constructor parameters: n="Joe Smith", d="Sales"

1.2 no explicit this() call

1.3 call super(n) for Employee(String)

1.3.1 bind constructor parameters: n="Joe Smith"

1.3.2 call this(n, null) for Employee(String, Date)

1.3.2.1 bind constructor parameters: n="Joe Smith", DoB=null

1.3.2.2 no explicit this() call

1.3.2.3 call super() for Object()

1.3.2.3.1 no binding necessary

1.3.2.3.2 no this() call

1.3.2.3.3 no super() call(Object is the root)

1.3.2.3.4 no explicit variable initialization for Object

1.3.2.3.5 no method body to call

1.3.2.4 initialize explicit Employee variables: salary=15000.00;注意:在父构造器返回后子类才会初始化实例变量的值。

1.3.2.5 execute body: name="Joe Smith"; date=null;

1.3.3- 1.3.4 steps skipped

1.3.5 execute body: no body in Employee(String)

1.4 no explicit initializers for Manager

1.5 execute body: department="Sales"

这个流程就说明了一切,这个步骤是要注意的。一会还有些内容是要涉及到这里的。

写在后边的一些在使用构造器中的注意事项。

一、构造器中一定不要创建自身的实例,否则会造成调用栈溢出错误。这个规则也适用于对象的实例变量,如果对象中有自身的引用,这个引用一定不能在定义中或者构造器中初始化。

class a

{

a _a= new a();

public a()

{

_a= new a();

a _b= new a();

}

}

以上三种情况都会造成栈溢出,呵呵,这样会造成一个无穷递归的调用栈。

二、如果父类是一个抽象类,那通过调用父类的构造器,也可以将它初始化,并且初始化其中的数据。

三、如果你要在构造器中调用一个方法时,将该方法声明为private。

对于这个规则是需要一些说明的,假使你的父类构造器中要调用一个非静态方法,而这个方法不是private的又被子类所重载,这样在实际创建子类的过程中递归调用到了父类的构造器时,父类构造器对这个方法的调用就会由于多态而实际上调用了子类的方法,当这个子类方法需要用到子类中实例变量的时候,就会由于变量没有初始化而出现异常(至于为什么子类中的实例变量没有初始化可以参考上边的实例初始化过程),这是Java不想看到的情况。而当父类构造器中调用的方法是一个private方法时,多态就不会出现,也就不会出现父类构造器调用子类方法的情况,这样可以保证父类始终调用自己的方法,即使这个方法中调用了父类中的实例变量也不会出现变量未初始化的情况(变量初始化总是在当前类构造器主体执行之前进行)。

关于java函数到此分享完毕,希望能帮助到您。

网站模板推荐 好书推荐模板java面试题及答案?c++面试题