Class (static) Variables and
Methods
Python |
Java |
Class variables name data that are shared by all
instances of a class. A class variable is introduced by a simple
assignment statement within a class. Class variable references are always prefixed with
the name of the class. Class variables are spelled in uppercase by
convention. Example: class Student:
NUM_GRADES = 5 def __init__(self, name):
self.name = name self.grades = [] for i in range(Student.NUM_GRADES): self.grades.append(0) Other usage: print(Student.NUM_GRADES) Class methods are methods that know nothing about
instances of a class, but can access class variables and call other class
methods for various purposes. For
example, a method to convert a numeric grade to a letter grade might be
defined as a class method in the Student
class. Class method calls are always prefixed with the
name of the class. Example: class Student: #
Instance method definitions @classmethod def getLetterGrade(cls, grade): if
grade > 89:
return 'A' elif grade > 79:
return 'B' else:
return 'F' Usage: s = Student() for i in range(1, Student.NUM_GRADES + 1): print(Student.getLetterGrade(s.getGrade(i))) |
Class variables name data that are shared by all
instances of a class. A class variable declaration is qualified by the
reserved word static.
Outside of the class definition, class variable
references are prefixed with the name of the class. Class variables are spelled in uppercase by
convention. Example: public class Student{ public
static final int NUM_GRADES = 5; private String name; private int[] grades; public Student(String name){
this.name = name; this.grades = new
int[NUM_GRADES]; } } Other usage: System.out.println(Student.NUM_GRADES); Class methods are methods that know nothing about
instances of a class, but can access class variables
and call other class methods for various purposes. For example, a method to convert a numeric
grade to a letter grade might be defined as a class method in the Student class. A class method header is qualified by the reserved
word static. Outside of the class definition, class method calls
are prefixed with the name of the class. Example: public class Student{ //
Instance method definitions and variable declarations public
static char getLetterGrade(int grade){ if
(grade > 89)
return 'A'; else
if (grade > 79)
return 'B'; else
return 'F'; Usage: s = new Student(); for (int i = 1; i <= Student.NUM_GRADES; i++) System.out.println(Student.getLetterGrade(s.getGrade(i)); |