java类和对象及python中的类似实现

版权声明:作者:傲娇天子 博文主页地址:https://blog.csdn.net/qq_41116956 欢迎转载,转载请在文章页面明显位置给出原文链接,谢谢 https://blog.csdn.net/qq_41116956/article/details/80581624

一:java类和对象

首先,我们简单说一下类和对象的理解:所有男的这相当于一个“类”,而某个具体的人就是一个“对象”

类:当做对象的模板

对象:根据类创建,在java中,使用关键词new创建新对象

java中定义一个类:

public class Dog {
	String name;		//定义狗的名字——
	int age;		//定义狗的年龄
	
	public void run(){	//定义狗的行为
		System.out.println("跑");
	}
}

创建对象:根据类创建一个

  1. 声明:声明一个对象,包括对象名称和对象类型。
  2. 实例化:使用关键字new来创建一个对象。
  3. 初始化:使用new创建对象时,会调用构造方法初始化对象
public class Dog {
	String name;		//定义狗的名字——
	int age;		//定义狗的年龄
	
	public void run(){	//定义狗的行为
		System.out.println("跑");
	}
	
	public static void main(String[] args) {        //创建对象
		Dog dog = new Dog();
	}
}

执行结果为空

需要注意的是,任何一个类在new一个对象的时候都会调用该类的构造函数,比如上面的Dog中隐藏的构造函数为:

public class Dog {
	public Dog(){		//隐藏的构造函数
		System.out.println("构造函数");
	}
	String name;		//定义狗的名字——
	int age;		//定义狗的年龄
	
	public void run(){	//定义狗的行为
		System.out.println("跑");
	}
	
	public static void main(String[] args) {
		Dog dog = new Dog();
	}
	
}

执行结果为:构造函数

访问实例变量和调用成员方法:

public class Dog {
	String name;		//定义狗的名字——
	int age;		//定义狗的年龄
	
	public void run(){	//定义狗的行为
		System.out.println("跑");
	}
		public static void main(String[] args) {
		Dog dog = new Dog();
		dog.name = "贵宾犬";
		dog.age = 4;
		System.out.println(dog.name + " 年龄:" + dog.age );
		dog.run();
	}
}

执行结果:贵宾犬 年龄:4 跑

规则声明:(来源百度)

当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则。

  1. 一个源文件中只能有一个public类
  2. 一个源文件可以有多个非public类
  3. 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
  4. 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
  5. 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
  6. import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明

 

二:python中的类似实现(python3)

    Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。

根据java,先定义一个类(用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。)

class Dog:
    name = "贵宾犬"
    i = 4
    def run(self):
        print("跑")

对比java:

public class Dog {
	String name;		//定义狗的名字——
	int age;		//定义狗的年龄
	
	public void run(){	//定义狗的行为
		System.out.println("跑");
	}
}

比起java中定义一个类肯定要简单的多,不过java毕竟占用资源很少不是吗

实例化一个python类

class Dog:

    name = "贵宾犬"
    i = 4
    def run(self):
        print("跑")
        return 0

dog = Dog()
print(dog.name + " 年龄:" )
print(dog.i)
print(dog.run())

既然java中有构造函数,那么python也就有相对应的构造方法:

class Dog:
    def __init__(self):
        print("构造方法")
    name = "贵宾犬"
    i = 4
    def run(self):
        print("跑")
        return 0

dog = Dog()

注意到self了吗?这可不是构造方法的名称:类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

完!

猜你喜欢

转载自blog.csdn.net/qq_41116956/article/details/80581624