JAVA和Python的类的异同
JAVA和Python的类的异同
同
- 都有类变量,Java中也叫静态变量
- 都有构造函数
- 都有实例方法
异
- 语法写的时候Python class名称后面带(),而Java声明类需要指定类的类型
- java中的实例变量需要声明,而Python中不用声明直接在构造函数中用self.name指定就可以了
- python貌似没有类方法
- 声明一个对象的时候Java 在声明一个新的对象的时候,先执行类变量的加载,如果有父类,先加载父类的变量;然后执行实例变量的加载;然后执行构造函数,如果父类有默认的构造函数,先执行父类的构造函数,然后再执行子类的构造函数 如果父类不存在默认的构造方法,则子类必须通过super调用父类的构造方法 |||||||||||python不会默认执行父类的构造方法,除非指定super().init()
- Java中.java的名字和该文件中的类必须是同名的 例如Car.java 中必须有一个pulic class Car;python中文件名和文件中类的名字不用对应,例如my_car.py中可以写一个class Car(),并且一个.py中文件中可以出现多个并列的类
- python中一个类可以作为实例变量
记录
1.在pyhon中的一个.py文件导入另外一个类 from .py import ClassName
JAVA和Python并发的异同
Java
1.Java实现多线程
①继承Thread
public class HelloThread extends Thread {
@Override
public void run() {
System.out.println("hello");
} }
实现:
public static void main(String[] args) {
Thread thread = new HelloThread();
thread.start();
}
②继承Runnable 由于Java一个类最多只能有一个父类,这时候可以继承Runnable接口
public class HelloRunnable implements Runnable {
@Override
public void run() {
System.out.println("hello");
} }
实现:
public static void main(String[] args) {
Thread helloThread = new Thread(new HelloRunnable());
helloThread.start();
}