C到Java,快速入门4类和对象①

这里就不概述关于对象类介绍一些东西了,默认已经了解了关于类对象的概念

  • 类的声明

关于类的声明和Cpp差不多

class 类名{
 类的内容,就是类体
}

类体就是关于变量的声明和方法的定义,这个也和Cpp一样

关于方法的定义也大象不差

关于局部变量和成员变量的区别一样的,就是局部变量和成员变量一样,想要在方法里面使用这种成员变量,只有this.

  • 构造方法

如果没有编写构造方法,系统会生成一个默认的构造方法就是

类名称 ()
{
};
  • 创建对象

和创建变量一样的是,必须new一下

而new了之后返回的就是一个引用,传递给类的名称,因此类的名称只是一个引用罢了

对象的引用回存放在栈中,对象的实体存放在堆中,

栈的优势是存取速度比对要快,缺点是存放在栈中的数据大小与生存期必须是确定的,缺乏灵活性

堆的优势是可以动态的分配内存大小,生存期也不必告诉编译器,

Java的垃圾收集器回自动收走这些不再使用的数据,缺点是由于要在运行时动态的分配内存,存取速度慢

Java会周期性的检测某个实体是否已不在被任何对象所拥有(引用),如果发现,就释放他的内存

  • 引用

System.out.println()会打印出带前缀的类的引用

System.identityHashCode()会返回引用

System.gc()可以直接让虚拟机立即进行依次Java垃圾处理

  • 类和程序的基本结构

类的基本结构就是,除了主类的其他的类都会在和主类在同一目录之下,然后需要修改的时候就直接修改那几个类就完了,不用重新编译所有,应为他们不具有关联性,这就是Java有利于系统维护的特点,而运行的时候就直接运行主类就可以了,

  • 传值

一般的实参和形参的关系和C一样,不一样的是Java数组和对象存放的是引用,所以传入形参也传入的引用,所以对形参进行动作就会改变实参的实体,类似于传地址&

  • 可变参数

这个比较牛b,主要是这样的声明

public void a(int...x);

首先,我们称x为参数代表,而我们可以用参数代表来无限添加我们的参数,比如x[0],x[1],x[2],x[3]

这样,一直用就完了是不是看出来了,尼玛这就一数组,对

public void a(int x[]);
  • 对象的组合和复用

不过,这没有必要必须讨论,主要就是每一个类里可以声明其他类的变量,也可以当作形参,也可以局部变量,都一样,        

A类中的成员变量是用B类声明的对象,那么AB就是关联关系,A关联与B,A类的对象组合了B类的对象

A中某个方法的参数是用B声明的对象或者某个方法返回的数据是B类的对象,A依赖于B

  • 实例成员和类成员

成员变量分为实例成员和类成员,实例成员就是一般的成员变量,如果加了static修饰符就是static变量,静态变量,类变量

所有对象都拥有同一个类变量,这和C中的static差不多,

可以直接对象.类变量,也可以类.类变量

class A ()
{
static int i;
}
public class B()
{
public static void main(String[] args) {
		 A.i = 1;
         A A1 = new A();
         A1.i = 1;
		 
		 
	 }
}

都是可以的而且,不必创建对象就可以使用类变量,因为类变量是和类加载的,

  • 方法重载

这个也一样,参数个数不同,或者参数个数相同参数类型不同,

  • this

这个也一样,就this不能出现在类方法中,因为this代指的是对象,而类方法需要再没有创建对象的时候就要加载

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值