一:java类和对象
首先,我们简单说一下类和对象的理解:所有男的这相当于一个“类”,而某个具体的人就是一个“对象”
类:当做对象的模板
对象:根据类创建,在java中,使用关键词new创建新对象
java中定义一个类:
public class Dog {
String name; //定义狗的名字——
int age; //定义狗的年龄
public void run(){ //定义狗的行为
System.out.println("跑");
}
}
创建对象:根据类创建一个
- 声明:声明一个对象,包括对象名称和对象类型。
- 实例化:使用关键字new来创建一个对象。
- 初始化:使用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语句时,要特别注意这些规则。
- 一个源文件中只能有一个public类
- 一个源文件可以有多个非public类
- 源文件的名称应该和public类的类名保持一致。例如:源文件中public类的类名是Employee,那么源文件应该命名为Employee.java。
- 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
- 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
- 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。
完!