一文教会用C语言基础理解Java基本概念

1.变量类型vs数据类型
  • 在C语言中,你需要声明变量类型如int, float, char等。Java中也有类似的数据类型,如int, float, char,但Java还引入了boolean类型,并且不需要像C语言那样明确指定变量是否可变(如final关键字在Java中用于定义常量)。
  • 基本数据类型的赋值是直接赋值,复合数据类型的赋值是地址引用。也就是说,当你将一个复合数据类型的引用赋给另一个变量时,你实际上是在复制这个引用,而不是复制整个对象或数组。因此,对原始对象的修改会影响到所有引用该对象的变量。
2.函数vs方法
  • C语言中的函数对应Java中的方法(method)。两者都用于封装一段可重复使用的代码,接受参数并可返回值。Java中每个类的方法默认属于该类,且必须定义在类中,这与C语言中的函数可以在文件的任何地方定义有所不同。
3. 内存管理vsGC:
  • C语言中,程序员需要手动分配和释放内存(使用malloccalloc分配,free释放)。而Java有垃圾回收机制(Garbage Collection, GC),自动管理内存的分配和回收,减少了内存泄漏和悬挂指针的风险。
   System.gc();
4.结构体vs类
  • 在C语言中,结构体是一种复合数据类型,允许你组合不同类型的数据成员。例如,定义一个表示学生的结构体:
struct Student {
    char* name;
    int age;
    float score;
};

你可以创建结构体变量(实例)并分配内存:

struct Student stu1;
stu1.name = "Alice";
stu1.age = 20;
stu1.score = 85.0;

Java中的类可以看作是C语言结构体的扩展和增强版。类不仅仅包含了数据(即成员变量,类似于C语言中的结构体成员),还包含了操作这些数据的函数(即成员方法,也就是通常所说的对象的行为)。类是通过关键字class定义的,例如:

public class Student {
    String name;
    int age;
    double score;
    // 构造方法,用于初始化对象
    public Student(String n, int a, double s) {
        name = n;
        age = a;
        score = s;
    }
    // 成员方法,用于描述对象行为
    public void display() {
        System.out.println(name + "的年龄是 " + age + ",成绩是 " + score);
    }
}
5.结构体变量vs对象

在C语言中,当你声明一个结构体变量时,你是在创建一个具体的实例。在Java中,当你基于类创建一个实例时,这个实例被称为对象。创建对象的过程就像是根据类(蓝图)制造具体的产品一样。例如,创建一个Student对象:

Student stu1 = new Student("Bob", 21, 90.0);
stu1.display();  // 输出:Bob的年龄是 21,成绩是 90.0
6.开放vs封装

Java中的类还强调了封装的概念,即隐藏对象的内部状态(成员变量)并提供公共的接口(成员方法)来与对象进行交互。这一点在C语言中较难实现,因为结构体成员通常是公开的,但在Java中,可以使用访问修饰符(如private, public)来控制成员的可见性。

总结

从C语言过渡到Java,可以将类想象为增强版的结构体,它不仅包含了数据成员,还有功能成员(方法)。对象则是根据类的定义创建的实例,每个对象都有其独立的内存空间和状态。

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值