您的位置:首页 > 财经 > 金融 > 无锡通告最新_深圳网页搜索排名提升_提高搜索引擎排名_app推广平台

无锡通告最新_深圳网页搜索排名提升_提高搜索引擎排名_app推广平台

2025/1/10 0:32:08 来源:https://blog.csdn.net/Chen298/article/details/144968199  浏览:    关键词:无锡通告最新_深圳网页搜索排名提升_提高搜索引擎排名_app推广平台
无锡通告最新_深圳网页搜索排名提升_提高搜索引擎排名_app推广平台

目录

一、Java与C语言对比

1、类(Class)与结构体(Struct)对比(从 C 语言角度理解)

2、方法(Method)与函数(Function)对比(从 C 语言角度理解)

3、对象(Object)与变量(Variable)对比(从 C 语言角度理解)

二、静态方法和非静态方法

1、静态方法(Static Method)

2、非静态方法(Instance Method)

三、实例(Instance)

四、访问修饰符

五、类

六、构造方法

未定义构造方法:

定义了构造方法:

七、继承

八、子类


一、Java与C语言对比

(只是方便我自己理解记忆,不一定完全准确严谨)

1、类(Class)与结构体(Struct)对比(从 C 语言角度理解)

C语言结构体:C语言中,结构体是一种复合数据类型,用于将不同类型的数据组合在一起。

struct Point {int x;int y;
};

这里的struct Point就像是一个模板,用来描述点这种数据结构应该包含哪些成员(在这个例子中是x和y坐标)。但是结构体主要是用于数据的组合,它本身没有太多的行为。

Java类:类似于C语言中结构体的升级版。它不仅可以包含数据成员(就像结构体中的成员变量),还可以包含方法(函数)来操作这些数据。

class Point {private int x;private int y;public Point(int x, int y) {this.x = x;this.y = y;}public int getX() {return x;}public int getY() {return y;}public double distance(Point other) {int dx = x - other.x;int dy = y - other.y;return Math.sqrt(dx * dx + dy * dy);}
}

这个Point类有x和y两个数据成员,同时有构造方法Point用于初始化对象,还有getX、getY方法用于获取坐标值,以及distance方法用于计算与另一个点的距离。可以把类看作是一个更高级的结构体,它将数据和对数据的操作封装在了一起。

2、方法(Method)与函数(Function)对比(从 C 语言角度理解)

C语言函数:C语言中,函数是独立的代码块,用于实现特定的功能。

int add(int a, int b) {return a + b;
}

函数可以接收参数,并返回一个结果。函数可以在程序的不同位置被调用,只要符合函数声明和定义的规则。

Java方法:Java方法类似于C语言的函数,但是有一些区别。Java方法通常是隶属于某一个类的。例如,上面Point类中的distance方法,它是和Point类紧密相关的。在Java中,方法的调用通常是通过对象(对于非静态方法)来进行的。比如,假设有两个Point对象p1和p2,可以这样调用distance方法:

Point p1 = new Point(1, 1);
Point p2 = new Point(4, 5);
double dist = p1.distance(p2);

这里distance方法可以访问Point类中的数据成员(x和y)来完成计算。可以把Java方法看作是C语言函数在面对对象环境下的一种形式,它和类的对象或是类本身(对于静态方法)关联在一起,用于实现类相关的功能。

3、对象(Object)与变量(Variable)对比(从 C 语言角度理解)

C语言变量:C语言中,变量用于存储数据。变量有不同的数据类型,如int、float、char等。变量可以作为函数的参数传递,也可以在函数内部进行操作。

Java对象:Java对象是类的实例。可以把类想象成一个模具,对象就是用这个模具制造出来的具体东西。例如,对于前面的Point类,通过new操作符创建对象:Point p = new Point(3,4);,这里p就是一个Point类的对象。对象包含了类中定义的数据成员,并且可以调用类中的方法。就像是C语言中变量存储了数据一样,Java对象存储了类中定义的数据成员的值,并且可以通过对象来执行类中定义的行为(通过调用方法)。对象在内存中有自己的存储空间,这个空间用于存放对象的数据成员等信息,就像C语言变量在内存中有自己的存储位置一样。

注:在Java中,想创建对象必须先有类。类是对象的模板,对象是类的实例。

二、静态方法和非静态方法

1、静态方法(Static Method)

静态方法是属于类本身的方法,而不是属于类的某个具体对象。可以把类想象成一个工厂,静态方法就是工厂里的公共工具,不需要通过工厂生产出来的某个产品(对象)就能使用。

例如,在一个MathUtils类中有一个静态方法add用于计算两个数的和:

class MathUtils {public static int add(int a, int b) {return a + b;}
}

调用方式:直接通过类名来调用,如MathUtils.add(3,5);。因为它不依赖于任何对象的状态,只要类被加载,就可以使用这个方法。就好像工厂里的工具放在固定的位置,任何人(任何代码部分)都可以直接去拿这个工具来使用,不需要先找一个工厂生产的产品。

用途:通常用于实现一些不依赖于对象状态的通用功能,比如数学计算、工具方法等。例如,对数组进行排序的方法可以是静态的,因为它不需要依赖于某个特定数组对象的其他属性,只要传入数组就可以进行排序操作。

2、非静态方法(Instance Method)

非静态方法是属于类的对象的方法,它和对象的状态紧密相关。把类比作汽车的设计图纸,对象就是根据这个图纸生产出来的汽车,非静态方法就是汽车的各种功能,比如开车、刹车等,这些功能是和具体的汽车(对象)相关的。

例如,在Car类中有一个非静态方法drive:

class Car {private int speed;public void drive() {System.out.println("The car is driving at " + speed + " mph.");}
}

调用方式:必须通过类的对象来调用。例如,先创建一个Car对象myCar,然后通过Car.drive();来调用drive方法。这就好比你必须先有一辆具体的汽车,才能使用汽车的开车功能。

用途:用于操作对象的内部状态或者实现和对象相关的行为。例如,对象的属性修改、与对象相关的业务逻辑处理等通常都是通过非静态方法实现的。比如,在一个BankAccount类中,存钱、取钱这些操作会改变账户余额这个对象状态,所以对应的方法是非静态方法。

三、实例(Instance)

实例指的是类的一个具体对象,是根据类的定义在内存中创建出来的实体。还是以汽车为例,Car类是汽车的设计图纸,通过这个图纸生产出来的每一辆汽车就是Car类的一个实例。

例如,当你执行Car myCar = new Car();时,myCar就是Car类的一个实例。这个实例拥有类中定义的属性和方法,并且每个实例的属性值可以不同,它们是内存中相互独立的实体。

四、访问修饰符

1、public是任意地方任何关系都能被访问;

2、protected同一个包下可以被访问或不同包但是是子类也可以被访问;

3、private是只能在该类被访问;

4、默认(无修饰符)是可以被同一个包下随意访问。

五、类

Java中类不是唯一的,可以有多个;主类也不是唯一的,可以有多个包含main方法的类,即多个主类。因为main方法只是程序的一个入口点,在一个复杂的项目中,可能有多个独立的部分都需要有自己的入口来进行测试或者独立运行。

六、构造方法

构造方法最主要的作用是:在对象创建时初始化对象的成员变量。

在Java中,一个类可以没有显式定义构造方法。如果一个类没有定义任何构造方法,Java编译器会自动为这个类提供一个默认的无参数构造方法。

未定义构造方法:

class MyClass {private int value;// 这里没有定义构造方法public int getValue() {return value;}public void setValue(int value) {this.value = value;}
}

对于这个MyClass类,虽然没有定义构造方法,但是可以像下面这样创建对象:

MyClass myObject = new MyClass();
myObject.setValue(10);
System.out.println(myObject.getValue());

编译器自动提供的默认构造方法会将对象的成员变量初始化为它们的默认值。对于基本数据类型,int类型默认值是0,double类型默认值是0.0,boolean类型默认值是false;对于引用类型(如String等),默认值是null。在上面的例子中,myObject对象的value成员变量在创建对象时会被初始化为0。

定义了构造方法:

例:有一个Rectangle(矩形)类,它有两个成员变量width(宽度)和length(长度):

class Rectangle {private double width;private double length;// 构造方法public Rectangle(double width, double length) {this.width = width;this.length = length;}// 其他方法,如计算面积public double getArea() {return width * length;}
}

当使用new Rectangle(3.0,4.0);创建一个Rectangle对象时,构造方法会将传入的参数值3.0和4.0分别赋值给对象的width和length成员变量,这样就完成了对象的初始化,使得这个矩形对象有了明确的宽度和长度属性。

七、继承

继承允许一个类(子类)获取另一个类(父类)的属性(成员变量)和行为(成员方法)。这是一种代码复用和构建类层次关系的有效方式。在Java中,通过extends关键字来实现继承,语法格式为class Subclass extends ParentClass,其中Subclass是子类 ,ParentClass是父类。

class Vehicle {private int speed;public void move() {System.out.println("Vehicle is moving.");}
}
class Car extends Vehicle {// 继承了Vehicle类的speed成员变量(虽然是private,不能直接访问)和move方法public void honk() {System.out.println("Car is honking.");}
}

在这个例子中,Car类继承了Vehicle类。这意味着Car类继承了Vehicle类的move方法,Car类的对象可以调用move方法,就好像这个方法是Car类自己定义的一样。同时,Car类还可以添加自己的新方法,如honk方法。

八、子类

子类是在继承关系中继承其他类(父类)的类。它是一种特殊的类,不仅拥有自己定义的属性和行为,还继承了父类的相关属性和行为。子类可以根据需要对继承的属性和行为进行扩展或修改。例如,在上述例子中,Car是Vehicle的子类,它继承了Vehicle的一些基本特征(如移动的能力),并且通过添加honk方法来体现汽车特有的行为。子类对象可以被看作是父类对象的一种特殊情况,例如,每一辆汽车(Car对象)都是一种交通工具(Vehicle对象),这种关系体现了面向对象编程中的 “is - a” 关系。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com