类与对象入门详解

函数重载(overload)

  • 一个类可以有多个构造函数,只要他们参数不同
  • 创建对象的时候给出不同的参数值,就会自动调用不同的构造函数
  • 通过this()还可以自动调用其他构造函数
class Sample{
		int sam;
		Sample(){
		sam = 0;
		}
		Sample(int sam){
		this.sam = sam;
		this();	//此处this()用于调用那个没有参数的构造函数
		}
}
  • 一个类里的同名但参数表不同的函数构成了重载关系

对象交互

private

  • 只有这个类内部可以访问
  • 类内部指类的成员函数和定义初始化
  • 这个限制是对类而不是对对象(同一个类下不同对象可以访问对方的_private_变量)

public

  • 任何人都可以访问
  • 任何人指的是在任何类的函数或定义初始化中可以使用
  • 使用指的是调用、访问或定义变量

friendly(省略)

  • 和其位于同一个包的其他类可以访问

protected

  • 自己可以访问、处在同一个包的其他类可以访问、子类(可以在不同包)可以访问

编译单元

  • 一个.java文件为一个编译单元
  • 编译单元内的public class类名称必须和编译单元名字相同
  • 当一个编译单元里有不只一个class类的时候只能有一个public属性的类

类变量 与 类函数

static

  • 不属于任何对象而是属于这个类

类变量 static
类函数 static

  • 类函数只能访问类变量

容器类

ArrayList<String> name = new ArrayList<String>();

  • 容器类有两个类型:1.容器的类型。2.元素的类型。

对象数组

  • 对对象进行for-each循环,如果在其中将k进行值改变的操作则对象数组所管理的对象的值也发生改变。

set

  • ‘集合’ 中元素无序

Hash表

  • 创建HashMap<K, V> name = new HashMap<K, V>();例如创建关键字为整型,值为字符串常量的散列表private HashMap<Integer, String> coins = new HashMap<Integer, String>();
  • 如果向表中加入key相同而value不同的数据则后一个value会覆盖前一个

继承

  • 如果一个子类继承自父类,若子类super();参数为空或无super();则都会去寻找父类中无参数的构造器。
  • 若子类super(...);有参数,则去寻找父类中有参数的构造器
  • 子类父类同名的变量和函数,在子类中使用时优先使用子类自己的,父类的被隐藏了,如果要调用父类的,那应该用super.*来引用

多态变量和向上造型

多态变量

  • Java的对象变量是多态的,它们能保存不止一种类型的对象
  • 他们可以保存声明类型的变量,也可以保存声明类型的子类的对象
  • 当把子类的对象赋给父类的变量的时候,就发生了_向上造型_
    造型cast
  • 子类的对象可以赋值给父类的变量(注意,java中不存在对象对对象的赋值
  • 父类的对象不能赋值给子类的变量
Vechicle v;
Car c = new Car();
v = c;//可以
c = v;//==编译出错==
  • 可以用造型 c = (Car)v; (只有当v这个变量实际管理的是Car才行)(区别于强制类型转换) (只是当作另一个类型看待,而非变成了另一个类型)
    区别声明类型动态类型
    java语言中的函数调用的绑定为动态绑定

类型系统

单根结构 Object类
所有的类都是继承自 Object类,Object类中的函数有***toString(); equals();***

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值