最近在重温java基础的时候,把java与python的类中的成员进行了对比,做了简单的分析与对比,供大家参考。
一、java中的类中的五大成员
`
package chapter24;
public class Person {
//1.属性(普通属性)
public int age = 10;
//1.属性(类属性)->所有对象共享,随着类的加载而记载
public static String name = "小动物";
//2.普通方法(对象)
public void eat() {
System.out.println("动物吃东西");
}
//2.静态方法(类)->当方法体内没有调用到任何属性时,用静态方法,无需new对象
public static void play() {
System.out.println("动物玩玩");
}
//3.构造方法
public Person(int age) {
this.age = age;
}
//4.普通代码块
{
System.out.println("我是父类普通代码块");
}
//4.静态代码块
static {
System.out.println("我是父类静态代码块");
}
//5.内部类(略)
}
二、python中类中的主要成员
# 类定义
class people:
# 1.属性(类属性)->无需实例化对象,直接通过类名即可访问
hand = '两只手'
leg = 2
gender = '男'
# 1.属性(私有类属性)->私有属性在类外部无法直接进行访问,可以通过内部方法进行访问
__weight = 0
# 2.定义构造方法(定义在构造函数里的属性是成员属性)
def __init__(self, n, a, w):
self.name = n # 1.属性(成员属性)
self.age = a # 1.属性(成员属性)
self.gender = w # 1.属性(成员属性)->若静态属性与普通属性重名,优先访问成员属性,成员属性屏蔽类属性
# 3.普通方法(对象)
def speak(self):
print("%s 说: 我 %d 岁 " % (self.name, self.age))
# 3.普通方法(私有)
def __speak(self):
print("我是私有方法")
# 3.类方法
@classmethod
def eat(self):
print("我是类方法")
# 3.静态方法
@staticmethod
def study(self):
print("我是静态方法")
# 实例化类
p = people('runoob', 10, 30)
p.speak()