对象和类
在面向对象编程中,将“具体”称为“对象”,将“抽象”称为“类”
类:由一组抽象的属性和方法构成
对象:由一组特定属性和方法构成
多个对象,可以抽象出来类
类可以产生多个对象
面向过程和面向对象的区别
⾯向过程 :面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的一次调用就可以。
⾯向对象 :面向对象,把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事件在解决整个问题的过程所发生的行为。 目的是为了写出通用的代码,加强代码的重用,屏蔽差异性。
类和对象的组成部分:
静态:属性
动态:方法
类可以细分,但细分并不一定是对象
方法是多个对象共享的
属性是各个对象独有的
一般而言,对象是指堆中的东西
栈里面的对象名称之为引用
引用:相当于C语言的指针。持有对象的内存地址
属性:就是全局变量
全局变量:方法以外,类以内;有初始值
局部变量:方法内部; 没有初始值,在使用前必须赋初值
局部变量可以和全局变量重名,并且优先级高
new 实例化
对象使用前必须先实例化(new)
public class Car {
// 类的属性
String brand;
int price;
// 类的方法
void start() {
System.out.println("The car is starting.");
}
void stop() {
System.out.println("The car is stopping.");
}
public static void main(String[] args) {
// 实例化对象
Car car1 = new Car();
Car car2 = new Car();
// 设置对象的属性
car1.brand = "Toyota";
car1.price = 20000;
car2.brand = "Honda";
car2.price = 25000;
// 调用对象的方法
car1.start();
car2.stop();
}
}
static静态方法调用
同一个类:
static方法不能调用非static方法
不同类:
调用另一个类的static方法可以类名.方法()
或者实例化一个对象 对象.方法()
static方法是类级别的,属于类
非static方法属于对象级别的,属于对象
对象.static方法() 对象.非static方法()
类.static方法()
类有的,对象自然有
对象有的,类不一定有
以下是一个详细的代码示例,展示了类和对象的使用,以及静态方法的调用。
public class Animal {
// 类的属性
String name;
int age;
// 类的方法
void speak() {
System.out.println(name + " says: Hello!");
}
// 静态方法
static void info() {
System.out.println("Animals are living beings that can move and respond to their environment.");
}
public static void main(String[] args) {
// 实例化对象
Animal dog = new Animal();
Animal cat = new Animal();
// 设置对象的属性
dog.name = "Buddy";
dog.age = 3;
cat.name = "Whiskers";
cat.age = 2;
// 调用对象的方法
dog.speak();
cat.speak();
// 调用静态方法
Animal.info();
}
}
代码解析
类的定义:
Animal类包含属性name和age,以及实例方法speak()和静态方法info()。实例化对象:在
main方法中,创建了两个Animal对象,分别代表一只狗和一只猫。设置属性:为每个对象设置了名称和年龄。
调用方法:通过对象调用实例方法
speak(),输出每个动物的问候。静态方法调用:通过类名调用静态方法
info(),输出关于动物的基本信息。
传参
返回值:
有返回值
无返回值(返回值为void)
在调用有返回值的方法时,需要接收返回值
多个元素类型相同 ->数组
多个元素类型不同 ->类/对象
参数列表必须满足:类型,个数,顺序完全一致
public class Calculation {
// 有返回值的方法
int add(int a, int b) {
return a + b;
}
// 无返回值的方法
void display(String message) {
System.out.println(message);
}
public static void main(String[] args) {
Calculation calc = new Calculation();
// 调用有返回值的方法
int result = calc.add(5, 3);
System.out.println("5 + 3 = " + result);
// 调用无返回值的方法
calc.display("Hello, world!");
}
}
Comments