类和对象

类是同种对象的集合与抽象。
属性是对象的特征,属性可以是数据,也可以是另一种对象。
面向对象基本特征:抽象性、封装性、继承性、多态。
多态:收到不同的对象发来的消息时能产生多种不同的行为方式,即指类中同一方法名能实现不同的功能,且可以使用相同的调用方式来调用这些具有不同功能的同名方法。

多态表现形式主要有两种:
(1)方法重载 (方法名相同,参数列表相同,与返回值无关) 静态多态性
(2)方法重写(方法名相同,参数列表相同,返回值完全相同) 动态多态性

Java中引用变量有两个类型:
1、编译时类型,由声明该变量时使用的类型决定;
2、运行时类型,由实际赋给该变量的对象决定;
在编译时类型与运行时类型不一致时,就可能出现——多态
向上转型
子类是一种特殊的父类,Java中允许把一个子类对象直接赋给一个父类引用变量,无需类型强制转换,就被称为向上转型,这个过程是由系统自动完成的。
多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载,它是根据参数列表的不同来区分不同的函数,通过编辑之后会变成两个不同的函数,在运行时谈不上多态。而运行时多态是动态的,它是通过动态绑定来实现的,也就是我们所说的多态性。

/*
 * (1)有继承
 * (2)有方法重写
 * (3)子类对象赋给父类引用变量(父类引用指向子类对象)(向上转型)
 */

class Father{
	
	public void show() {
		System.out.println("我是父类方法");
	}
}


public class Child extends Father {
	
	public void show() {
		System.out.println("我是子类方法");
	}

	public static void main(String[] args) {
		
		//下面编译时类型与运行时相同
		Father f1 = new Father();
		f1.show();
		Child c1 = new Child();
		c1.show();
		
		System.out.println("-----------------------------------");
		//这里不同所以
		Father f2 = new Child();
		f2.show();
		
	}
}

成员变量和局部变量:
定义在类内部方法外的变量称为全局变量,全局变量的作用域是整个类,即在整个类中都能使用该变量。而定义在类内部方法内的变量称为局部变量,该变量的作用域仅限于方法内部。

构造方法:用来创建对象时让Java系统调用构造方法去初始化新建对象的成员变量。
构造方法特点:
(1)类的构造方法名必须和类名相同,这是区别它与成员方法的第一条准则。
(2)构造方法没有返回值(在构造方法名字前连void也不要加),这是区别它与成员方法的第二条准则。
(3)如果在类中没有定义构造方法,Java会默认调用类的默认构造方法,将使用默认值来初始化成员变量。
如果类中有了构造方法,就不会有无参构造方法了,如果要使用无参构造函数必须手动指出。
对象:
当创建一个类时,就可以实例化该种类型的对象。实例化就是为对象分配存储空间,并同时对对象进行初始化,通过new运算符和类的构造方法共同来完成。
类是一种逻辑构造,是一种新的数据类型,该种类型能被用来创建对象,而对象有物理的真实性,对象占用真正的内存空间。

成员变量与方法中的局部变量同名时,成员方法在该方法中被隐蔽,因此如果在该方法中出现变量,系统均认为是局部变量,若要引用成员变量,则用this关键字。
方法参数传递:
(1)参数是基本数据类型时,参数的传递为实际值。
(2)参数是引用数据类型时,由于参数值存储的只是引用对象的地址值,因此参数的传递为引用对象的地址值传递。

this关键字:
通过this.变量名的方式引用全局变量,来解决可能在全局变量和局部变量之间发生的任何同名的冲突。

static关键字:
static不用来修饰类,只是修饰类的成员,它在该类所有实例之间是共享的。
static修饰的方法称为类方法。
类方法不属于类的某个对象,可以被由该类创建的所有对象使用,也可以被其他类引用。
类方法的两条重要原则:
(1)类方法不能访问所属类的非静态变量和方法,只能访问方法体内的局部变量、参数和静态变量。
(2)类方法中不能出现this和super关键字。

static语句块仅在类第一次实例化时才执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值