Quick Dev Ref page is for quick syntax reference.
====== Editor Reference ======
^ IDE - big | [[appwiki:xcode|Xcode]], [[https://www.visualstudio.com/products/visual-studio-community-vs|Visual Studio Community edition]] (replaced VS Express), [[http://www.eclipse.org/downloads/packages/|eclipse]], [[http://netbeans.org/|NetBean]] |
| IDE - small \\ cross-platform \\ small \\ sort based by \\ my experience | * [[https://www.qt.io/download-open-source/|Qt Creator]] \\ * [[http://codelite.org/|CodeLite IDE]] \\ * [[http://www.bloodshed.net/devcpp.html|Bloodshed Dev-C++ (old)]] ([[https://sourceforge.net/projects/orwelldevcpp/|SF new]]) \\ * [[http://www.codeblocks.org/|Code Blocks]] ([[https://sourceforge.net/projects/codeblocks/|SF link]]) \\ * [[http://www.ultimatepp.org/|Ultimate++]] |
| code editor \\ without compiler | vi, vim, [[https://notepad-plus-plus.org/|Notepad++]], [[https://www.sublimetext.com/|sublime text]], [[https://atom.io/|Atom]], [[https://code.visualstudio.com|VisualStudio Code]] |
| others | [[https://www.jetbrains.com/webstorm/|WebStorm-JS IDE]], [[https://www.jetbrains.com/idea/|IntelliJ IDEA - Java, Web]] |
| library | [[http://www.boost.org/|Boost]], Qt, ref: [[http://stackoverflow.com/questions/2702416/portable-c-ide|link]] |
^ Blogs | [[http://technofreaky.wordpress.com/|PHP & Linux]], [[http://sree.cc/|Android]] |
====== Procedural type language vs Object-oriented type language ======
Process-oriented Difference:
* structure definition and operational functions
* like Action + Subject
* class definition and behavior methods
* like Object + Action
Object-oriented characteristics
* Encapsulation
* include properties and methods inside itself
* Inheritance
* Polymorphism
====== Developing Process ======
* API vs SDK: http://stackoverflow.com/questions/834763/api-vs-sdk
====== Language Structure ======
* Syntax - Grammar
* Data type
* data type conversion + user defined
* Logic operation
* Constructor
* statement
* declaration statement : define variables
* type name
* object name
* function name
* expression statement : to assign value
* iteration statement : like a loop
* conditional statement : also known as selection statement
* exception statement : error handling
====== C++ / cpp ======
One definition rule : any object can only have one definition. \\
A variable in C++ is a name for a piece of memory that can be used to store information.
// defining
class ClassName {
int a;
public:
int b;
int funcA (){ ... }
};
// function
int main(){
ClassName objA;
objA.funcA(); // do method
cout << " text here \n";
return 0;
}
Data type: bool, char, int, float, double, long double, void, enum \\
Data structure: pointer, array, reference, structure, class \\
Scope and Namespace: external, internal, none \\
Access right: public, private, protected \\
Constant: const int a=0; //constant can not be changed
Operation: static cast, dynamic cast, implicit, explicit \\
Logic operation: ==, <, >, ++, switch(n){case a: act1;break;}, break, continue, return, goto \\
Iteration:
for ( initial; condition; increment ) { statement }
while ( condition ) { statement }
do{ statement } while ( condition )
Exception: try{statement; on error, throw variable;} catch(variable){statement;}
Function (support overloading, virtual): void func1 (int x, int y){} \\
Class:
====== Objective-C / objc m ======
| [movie setTitle:@"Iron man"]; |=| movie.title = @"Iron man"; |
| [movie title]; |=| movie.title; |
====== Java ======
IO stream
System.out.println("Hello!");
x = System.in.read();
Data type: int, short, int, long, float, double, byte, char, string \\
Data structure: array
Logic operation: ==, !==. <, >, <=, >=, &&, || , ! \\
Condition statement:
* if(){}
* if(){} else{}
* if(){} else if(){} else{}
* switch(n){case "val1": stt; break;}
Iteration:
* white(condition){}
* do {} while (condition);
* for (int i=0; i < 10; i++){ }
====== SQL ======
DELETE FROM `databaseName`.`tableName` WHERE `databaseName`.`tableName` = 'theValue'
====== Language concepts ======
===== Passing by Value, Passing by Reference (memory address) =====
the variable of data type like (int char byte short) is in stack memory;
only passed by value;
the variable of other class objects like (Array ClassName) is in heap memory, and address is in stack memory.
===== Class =====
* data [ public , private ] <==> variable <==> member
* function [ public , private ]
* method [ public , private ]
Class can be defined inside another class; nested.
===== Static =====
In Class, there is some key feature that never change, like Class Chinese, a property "nationality" is always "chinese";
So, this kind of property in class never changes in new instances, same as property, method also can be static as that;
Because of "static" nature, the property and method is pre-built and can not have individual value for each instance, therefore, even there is no instance of a class, the property and method can be directly used even without any instance created.
Its nature:
* all instance shares one copy of the same static property
* Drawback, static method or variable can only access static method and variable; Because non-static stuffs are not there before a instance is created, and key word "this" also can not by used by static stuffs
* However, static method and variable can be accessed by anyone
===== Return =====
Why there is a "return" value
Simulate real-world procedural, like "Go and buy a bag of super";
You as main function (home director), The person is a function, and that person once being called, he will return you a bag of super.
if that person made a mistake, then he may return a bag of salt.
so return can be any possible value.