This section provides a preliminary introduction to the details of the class.
1.2.1 Structure of the class body
First of all, according to my object priority teaching Strategy , first introduce the knowledge of the class rather than the first control structure. So, as early as the second section of the first chapter, we give a complete example of dog routines 1-1. The 1.2.1 class body structure surrounds the routines, describing the state, behavior, and Identity (reference) in general. Many things, inconvenient to explain now, do not explain. The students first operate it in the BlueJ .
★learning by doing.
Package zoo;/** * Class dog describes the human faithful friend dog. class declaration. * @author yqj2065 * @ Version 0.1 */public class Dog { //class header, class declaration private String name = "Baby";//String dog name, default call B Aby Private indicates the access rights of the privately owned boolean sex; Boolean/Logical Data gender. There are only two sexes, one must live. True represents the male. private int age = 0; The integer age, which defaults to 0 years. /* setter and getter*//** * Set the name of the dog. * @param n Dog's name (string). * @throws later to consider the parameter check things, now can not be confused. The president's name must not be used. * /public void SetName (String n) { name = n; } Set the dog's name. Void indicates that the return value is empty and not required. String getName () {return name;}//return/returns the name of the dog /** @param ismale true for male */ void Setsex (Boolean ismale) { sex = ismale;} int getage () {return age;} /** Wag the tail behavior. Output string Hello World * /Void Wagtail () { System.out.println ("Hello World"); } /** Dog will do simple addition * /int Add (int i, int j) {return i+j;} }
1. The state of an object is a collection of all property values for the object. Each object has its own memory space to save its own state, that is, the name, age, gender, and so on attribute values.
2. The "act" of an objective object is a generalization. If a dog has a wagging tail, a roaring action, an activity that sets his age or asks his age, an abstract object, such as a circle, has a formula, calculation procedure, or algorithm for calculating its area and perimeter. The source code models the object behavior as executable blocks of code, called methods in Java, and methods for reading and writing to an attribute, commonly known as setter and getter.
3. The identity (or identity) of the object, in the scope of this tutorial, is judged entirely in terms of where it occupies in memory (by reference) . That is, two objects occupy the same memory location, they are "the same" object; otherwise, even if their state is exactly the same, they are simply "equal".
Exercise 1-11. Use the BlueJ IDE to master the contents of the Appendix A.1: Edit and compile the source code. |
Exercise 1-12: Mastering the Appendix A.2 interacting with Classes and objects: Create a Dog object in BlueJ and call its Wagtail (), GetName (), and SetName (String) methods. Describes how to view the effects of the previous 3 method calls. Reminder: Use double quotation marks to enclose a string literal as a parameter. Exercise 1-17: What is the identity of an object?
|
4. Overview of the structure of classes
Class as the template for an object, the most basic component is the state and behavior of the object, including the inner class, the internal interface (see [9.4 Nested types]). In Java, they are called members of the class .
Class also has an important job to prepare for making your own objects easier to create. Thus in the class definition, the source code is often placed in the code block of this purpose--constructors, initialization blocks。 These code blocks are not used to describe object characteristics, so they are not considered members of the class. Just like auditors, although in class, it is not a part of the class. Sometimes called it a
non-member of the class。
Therefore, the structure of the ordinary class is usually:
Package Xxx;//import xxx;/** Class Introduction */public class xxxx{ < domain declaration > < constructor, initialization block > < method definition > < internal class, internal interface;}
1.2.2 Blanks and annotations
The following is a 1-1 zoo around the routine. Dog.java, which describes the composition of the source code-- comments, whitespace , and five Java lexical elements : identifiers, keywords, literals, operators, and separators. Please also make a game to copy the dog code to the zoo. Dog4fun, remove the sections that have been introduced.
Whitespace includes spaces, tabs (tab), and line breaks.
* Between words and words such as private String name, you need to use a space to interval (it is a delimiter)
* Tab-Regular indentation, the main function is to make the code structure clear.
* Source code is a plain text file, each line ends with a newline character. The newline character has a CR in ASCII code (carriage return, ' \ R ', 0x0D, 13) and LF (line feed, ' \ n ', 0x0A, 10). (When reading a file, be aware of the line break processing.) )
Note that the book occupies a space close to "the structure of the class", in particular the enumeration of commonly used Javadoc block tags. No matter how much we emphasize,
★ The program must be written for people to read, only occasionally let the machine perform--abelson and Sussman
★any fool can write code that a computer can understand. Good programmers write code that humans can understand--martin Fowler
1.2.35 Types of Java elements
Java lexical elements (tokens, language symbols) are the smallest units that the Java compiler can recognize, including the following five types: identifiers, keywords, literals, operators, and separators .
Routines 1-2 different kinds of identifiers are independent of each other
Package Semantics;public class Yqj { yqj yqj (yqj yqj) { yqj: for (;;) { if (yqj. YQJ (YQJ) ==yqj) break yqj; return YQJ;} }
The syntax for identifiers is simply enumerated. In Java.
identifiers, comments, character literals, string literals can use Unicode, while other Java elements, such as keywords, operators, and so on, use ASCII characters.
Exercise 1-25. Defines a method that determines whether a character is an identifier-free character. Replace the symbol "★" in the following code with a variety of characters, including kanji. and confirms that 2mail, room# is or is not a valid identifier.
chard= ' ★ ';
Booleanb1=character.isjavaidentifierstart (d);//is a valid identifier first character
Booleanb2=character.isjavaidentifierpart (d);
SYSTEM.OUT.PRINTLN (B1 + "" + B2);
The details of the available characters refer to the documentation for methods such as Character.isjavaidentifierstart () in JDK documentation.
(This is my attempt, at this stage, can students complete exercise 1-25?) )
Exercise 1-30. The ASCII of the value 0, the letter A, a, respectively, is ____. (1) 0, 65, 66 (2) 48, 65, 97 (2) 48, 96, 97.
2. Keywords
Abstract |
Assert |
Boolean |
Break |
Byte |
Case |
Catch |
Char |
Class |
Const |
Continue |
Default |
Do |
Double |
Else |
Enum |
Extends |
Final |
Finally |
Float |
For |
Goto |
If |
Implements |
Import |
instanceof |
Int |
Interface |
Long |
Native |
New |
Package |
Private |
Protected |
Public |
Return |
Short |
Static |
Strictfp |
Super |
Switch |
Synchronized |
This |
Throw |
Throws |
Transient |
Try |
void |
Volatile |
While |
|
|
|
|
False, True, and null are theoretically literal and are not populated in table 1-1.
3. Text
Text is also known as a constant value, a literal value.
Integer literals usually use decimal numbers, or 2, 8, or 16 digits, and numbers can be added to enhance readability, with 0 (0) being octal, and numbers starting with 0 B (0b or 0B) being binary numbers, and numbers starting with 0 x (0x or 0X) are hexadecimal digits. The string literal is a reference to a string object.
The 4.[3.2.2 operator] will fully describe the operator.
5. Separators (separators) separate the different parts of the program. such as a space split word, comma split method parameters, semicolon represents the end of the statement (because multiple statements can be placed on one line). The rest is {} ().
Exercise 1-35: Write the program TypeSystem.primitive.Literal.java and verify the syntax of the various words. (I find I have a tendency to be extremely dismissive of grammar teaching.) )
1.2.4 syntax, semantics and conventions
Grammar (syntax, syntax; syntactic grammar, grammatical rules)A series of lexical elements are strictly defined to form a syntactic correct statement. It is when you write a programmust followThe rules. The compiler is able to determine whether many elements of a program are correctly grouped by token and a set of grammatical rules in the programming language.
For new programmers, grammatical errors are very easy to come by.
Semantics (or semantics, semantics) usually refer to the meaning expressed by the language structure, or what the computer will do when a statement executes. In the vast majority of cases, high-level languages use natural language and mathematical idioms to express their semantics, so they can be less concerned with semantics, often combining grammar and semantics into one. The more language structures you can understand with intuition , the more friendly the language is.
The semantics of language structures are usually clear, that is, each statement has only one interpretation. However, sometimes a language does not define its semantics for a structure, such as the Order of evaluation of expressions in the [3.2.2 Operator], and does not define its semantics in the C language. With a legitimate statement, different programmers may express different meanings, and the results of different execution environments may be different. In addition, the language structure is different from what people take for granted , it is necessary to pay attention to the semantic learning. Such as
for (int x:list) {
x + +;
}
Don't expect it to add one to the elements of int[]list = {1,3,5,7,9}, making the array element {2,4,6,8,10}.
Convention (Convention). The syntax is a requirement that programmers "must" obey, otherwise the compilation does not pass. The convention is "should" be adhered to, because it is the programmer community requirements. The agreement is like the social morality restraint in the real life--should give seats to the elderly and pregnant women. The basic reason for a contract is to make it easy for programmers to read (others ') code. Programming conventions can effectively enhance the readability of code, better maintenance. such as naming conventions, typographic conventions, and so on.
1.2.5 Case: Score
Programs are not all examples of language teaching such as dog, first look at some practical and simple code.
The fraction class only lists the addition function, other function code such as subtraction, multiplication after completion of the [3.2 implementation], please implement it yourself . In order to get the normalized form of fractions, a function module gcd (int,int), which calculates the greatest common divisor of A/b, is implemented using Euclidean (Euclid) algorithm/Euclidean method, see [10.1.1 algorithm].
Package Tips;public class fraction{private int num;//molecule numerator private int den = 1;//denominator denominator pub LIC int Getnum () {return num;} public int Getden () {return den;} Public fraction () {this (0);} /** N/1 form of the score */public fraction (int N) {num = N; }/** creates a fraction equal to n/d * @param N numerator numerator, * @param D denominator denominator, not 0 int value. */Public fraction (int n, int D) {int n = n >= 0? N:-N; int d = d >= 0? D:-D; int g = GCD (n, D); Normalized this.num = ((n>= 0) = = (d>= 0))? (n/g):(-n/g); This.den = d/g; }/** adds a fraction to this object body */public void Add (fraction f) {num= Num*f.den +den*f.num; Den = den *f.den; int g = GCD (Num,den); Num/= g; Den/= g; }/** calculates the greatest common divisor of a, B greatest common divisor */public final int gcd (int a,int b) {while (b! = 0) { int tep=a% B; A = b; b = tep; } return a>=0?a:-a; /** Overwrite object's tostring () */@Override public String ToString () {return (Den = = 1)? ("" +getnum ()):(getnum () + "/" +getden ()); } }
This section A total of 10 pages, recommended teaching class 1h, self-taught 4h--to do exercise-oriented.
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
"Introduction to Programming (JAVA) • Category 1.2"