#################################################
JAVA:---------------
statically typed:>>>>>>>>>>>>>>>>>>
In Java, all variable names (along with their types) must be explicitly declared. Attempting to assign an object of the wrong type to a variable name triggers a type exception. That's what it means to say that Java is a statically typed language.
Java container objects (e.g. Vector and ArrayList) hold objects of the generic type Object, but cannot hold primitives such as int. To store an int in a Vector, you must first convert the int to an Integer. When you retrieve an object from a container, it doesn't remember its type, and must be explicitly cast to the desired type.
PYTHON:-----------
dynamically typed:>>>>>>>>>>>>>>>>>>>>>>
In Python, you never declare anything. An assignment statement binds a name to an object, and the object can be of any type. If a name is assigned to an object of one type, it may later be assigned to an object of a different type. That's what it means to say that Python is a dynamically typed language.
Python container objects (e.g. lists and dictionaries) can hold objects of any type, including numbers and lists. When you retrieve an object from a container, it remembers its type, so no casting is required.
#################################################
Example:>>>>>>>>>>>>>>>>>>
In the following example, we initialize an integer to zero, then convert it to a string, then check to see if it is empty. Note the data declaration (highlighted), which is necessary in Java but not in Python. Notice also how verbose Java is, even in an operation as basic as comparing two strings for equality.
JAVA:------------------
int myCounter = 0;
String myString = String.valueOf(myCounter);
if (myString.equals("0")) ...
// print the integers from 1 to 9
for (int i = 1; i < 10; i++) {
System.out.println(i);
}
PYTHON:----------------
myCounter = 0
myString = str(myCounter)
if myString == "0": ...
# print the integers from 1 to 9
for i in range(1,10):
print i
#################################################
EXAMPLE:>>>>>>>>>>>>
Your application has an Employee class. When an instance of Employee is created, the constructor may be passed one, two, or three arguments.
If you are programming in Java, this means that you write three constructors, with three different signatures. If you are programming in Python, you write only a single constructor, with default values for the optional arguments.
JAVA:------------
public class Employee
{
private String myEmployeeName;
private int myTaxDeductions = 1;
private String myMaritalStatus = "single";
//--------- constructor #1 -------------
public Employee(String EmployeName)
{
this(employeeName, 1);
}
//--------- constructor #2 -------------
public Employee(String EmployeName, int taxDeductions)
{
this(employeeName, taxDeductions, "single");
}
//--------- constructor #3 -------------
public Employee(String EmployeName,
int taxDeductions,
String maritalStatus)
{
this.employeeName = employeeName;
this.taxDeductions = taxDeductions;
this.maritalStatus = maritalStatus;
}
...
PYTHON:-------------
class Employee():
def __init__(self,
employeeName, taxDeductions=1, maritalStatus="single"):
self.employeeName = employeeName
self.taxDeductions = taxDeductions
self.maritalStatus = maritalStatus
...
#############
In Python, a class has only one constructor. The constructor method is simply another method of the class, but one that has a special name: __init__
#################################################
APPENDIX: About static vs. dynamic typing, and strong vs. weak typing, of programming languages.
JAVA:-----------
In a statically typed language, every variable name is bound both (1) to a type (at compile time, by means of a data declaration) and (2) to an object. The binding to an object is optional — if a name is not bound to an object, the name is said to be null. Once a variable name has been bound to a type (that is, declared) it can be bound (via an assignment statement) only to objects of that type; it cannot ever be bound to an object of a different type. An attempt to bind the name to an object of the wrong type will raise a type exception.
PYTHON:----------------
In a dynamically typed language, every variable name is (unless it is null) bound only to an object. Names are bound to objects at execution time by means of assignment statements, and it is possible to bind a name to objects of different types during the execution of the program.
#################################################
Email Me:-------- codes47@gmail.com
No response to “Java vs. Python Productivity”
Leave a reply