Java程序辅导

C C++ Java Python Processing编程在线培训 程序编写 软件开发 视频讲解

客服在线QQ:2653320439 微信:ittutor Email:itutor@qq.com
wx: cjtutor
QQ: 2653320439
Explaining Java constructs Skip to main content JavaHyperText and Data Structures David Gries, with help from many Home Java HyperText Style Guide Eclipse 0. Create project 1. Show line numbers 2. Import preferences for automatic formatting 3. Reset layout 4. Syntax help 5. Open 2 files 6. ToDO comments 7. JUnit testing 8. Assert statement 9. Generating javadoc 10. Red square: terminating programs 11. Remove/add imports 12. Use UTF-8 character encoding API and strings 1. API documentation 3. Using Strings Explain constructs Introduction 1. Assignment statement 2. New-expression 3. Method calls 2. Try-statement Exceptions 1. Output of thrown exceptions 2. Throwable objects 3. Try-stmt/propagation 4. Throw-statement 5. Throws-clause 6. Hints Abstract classes interfaces Iterator & Iterable Program correctness Loop invariants 1. Introduction 2. Developing loops 3. Finding an invariant Stepwise refinement Recursion Intro to recursion Recursion on linked lists Recursion on trees Backtracking Hashing DFS BFS Shortest path Explaining how Java constructs are executed or evaluated Introduction Sometimes, it is easy to write code without thoroughly understanding what it does ---your program worked, but you're not completely sure why. Other times, you might "know" a fact without understanding its implications, leading to misunderstandings and poor programming. This page is designed to increase understanding and remove misunderstandings. It highlights important concepts and allows you to test yourself to make sure you avoid common misconceptions. Here is a way to study some of this material, be it a definition, an algorithm, a concept, or evaluation/execution of some Java code. It doesn't take long to do this. Execution versus evaluation An expresssion like  x+2  is evaluated. If variable x contains value 4, evaluation of  x+2  yields the value 6. A computer could evaluate that expression, but you could too. A function call like   max(5, 3)   is an expression, and evaluating it yields the value 5. A statement is not evaluated; it is executed. For example, the statements  x= x+2;  and (in a recipe) "Stir the batter until smooth" are executed, or carried out by someone or something ---a person, a computer, a chef. The Java statement  System.out.println(6);  is a call on procedure println. Executing the call causes 6 to be printed somewhere; it does not "return" a result. Function calls, which are expressions, are different from procedure calls, which are statements. Syntax versus semantics There are two different issues in defining a programming language: 1. Syntax. What does it mean for a statement to be syntactically correct? For example, you know that the following if-statement is not correct because it is missing an open parenthesis: if x < 3) x= x+2; Also, if x is of type int, the Java statement x= 5.3; is syntactically incorrect. If a program is not syntactically correct, it cannot be executed (or run, or carried out). Whether you are using Matlab or Python or Java, your program will not be executed if it contains a syntax error. A Java compiler is a program that (1) checks that a Java program is syntactically correct and, if it is, (2) translates the Java program into the Java virtual machine language so it can be executed. Compile-time refers to the time when the compiler is checking a program to make sure it is syntactically correct and then translating it into the machine language. 2. Semantics. Semantics has to do with meaning. For a programming language, semantics deals with how a program (i.e. the translated-into-machine-language version) is executed. This requires knowing how each statement of the language is executed. For example, what does it mean to execute, or carry out, the assignment x= x+2; ? We'll see that next. Runtime refers to the time at which the program is being executed, i.e. when it is running. The program can be run only if it is syntactically correct.   0. Presenting an algorithm in English Essentially, an algorithm is a sequence of steps to be executed. Some algorithms are written in English, some in Java, some in Python, some in a mixture of English and a programming language. In this 2.5-minute video, we explain how English steps in an algorithm should be written, using as our model the cooking recipe. Read it here: 01presentingAlgorithmsB.pdf     1. Executing the assignment statement See this page   2. Evaluating the new-expression We have explained and demoed the new-expression. You have used it in some progams. Yet, when asked how to evaluate it many student cannot answer reasonably. They hem and haw, They ask "What do you mean by evaluating it?" This 2-minute video once again give the algorithm for evaluating a new-expression and demoes its evaluation. We urge you to watch it carefully. Read it here: 02new-expression.pdf Try practice 1 (see above) on the three steps in evaluating the new-expression. Then do two exercises on this page. 3. Executing (or evaluating) method calls It is important to understand how a method call is executed. It will help you understand when local variables are creating during a call, and it will help you understand how recursion works. When debugging a program, it can help you find the source of an error. See this page to learn about executing method calls. 4. Executing a try-statement. If you don't know about exception handling and the try-statement, don't read this part (there is a tutorial and problem set on exception handling, which you may not yet encountered). A lot of your questions on exception handling can be answered by understanding exactly how a try-statement is executed. The try-statement has the form: try catch ( e) ... catch ( e) where a throwable-class is class Throwable or one of its subclasses. Look at this pdf file for the algorithm for executing the try-statement.       ©2017 David Gries