java基础学习 五、面向对象

Java 是面对对象的程序设计语言 ,提供了定义类、成员变量、方法等最基本的功能。也提供了面对对象的三大特征,封装,继承,多态。

定义类

面对对象的程序设计有两个重要概念,类以及对象(也被称为实例),其中类是某一个种类别事物的抽象,或者或某种概念,对象或者说实例才是具体存在的实体。例如,人类可以称之为类(class),而人具体到你,我都是人类的实例,真实存在,但有有所不同。
类使用 class 进行创建:

[修饰符]class 类名{
	构造器...
	成员变量...
	方法...
}

修饰符可以是public,final,abstract,或者省略这三个修饰符,类名只需要合法并且遵守驼峰命名法即可。

类中可以包含三种最常见的成员:构造器,成员变量,方法,这三种成员都可以定义零个或者多个。

构造器:构造器用于构造一个类的实例,Java通过 new 关键字来调用某个类的构造,从而返回这个类的一个实例。构造器是创建一个类实例的根本途径,如果一个类没有显式的定义构造器,那么 java 会为这个类提供一个默认的构造。构造器的名字与类名一致。

[修饰符]class 类名{

	[修饰符] 类名(形参列表){
	这是一个构造器
	}
	
}

成员变量:成员变量用于定义该类或者该类实例所包含的状态数据。

[修饰符] class 类名{
	[修饰符] 类型 成员变量名 [= 默认值];
}

修饰符可以省略,也可以是public,protected,private,static,final。类型可以是基本类型也可以是引用类型。成员变量名也需要合法并且遵守驼峰命名法。

方法:用于定义该类或者该类实例的行为特征或者功能实现。

[修饰符] class 类名{
	[修饰符] 方法返回值类型 方法名(形参列表){
		方法体
	}
}

修饰符与成员变量差不多,但多了 abstract 修饰符。方法返回值类型可以是 Java允许的如何数据类型,包括基本类型和引用类型,如果声明了方法返回值类型,方法体中必然存在 return 关键字,用于返回具体具体数据,如果该方法没有如何数据返回,则方法返回值类型需要使用 void 进行修饰。方法名与前面的一致。形参列表用于定义这个方法中可以接受的参数,每个形参间使用逗号隔开。

// 这是一个person类型
public class Person{
	//成员变量
	public String name;
	
	//构造器
	public Person(String name){
		this.name = name;
	}
	
	//方法
	public void say(String str){
		System.out.pringln(str);
	}

}

对象的产生和使用

创建对象根本途径是构造,通过 new 关键字调用类的构造器进行创建。

//创建Person类的变量p
Person p;
// 通过new创建Person实例赋值给p
p = new Person();

p这个对象作用大致有两种,访问对象的实例变量,调用对象的方法。

//访问 p 的 name 的实例变量,直接给该变量赋值
p.name = "龙傲天";

//调用 p 的 say() 方法,并且将值传入
p.say("我是龙傲天!");

大部分时候,定义一个类就是为了重复创建该类的实例,同一类的多个实例具有不通的特征,而类则定义了多个实例的共同特征。因此,类不是一种具体存在,而是实例才是具体存在。

对象的 this 引用

Java 提供一个 this 关键字,这个关键字总是指向调用改方法的对象。根据 this 出现的位置不同,this作为对象的默认引用有两种情形:
构造器中引用该构造器正在初始化的对象。
在方法中调用该方法的对象。

public class Person{
    //定义一个方法 say()
    public void say(){
        System.out.println("我说话了!");
    }
    
    //定义另一个方法 run()
    public void run(){
        //调用本类中的另一个方法,this直接代表本类或者本实例
        this.say();
        
        System.out.println("我在跑步");
    }
}

方法详解

方法是类或者对象的行为特征的抽象,方法是类或者对象最重要的组成部分。
方法不能独立定义,方法只能在类里定义。
从逻辑意义上来看,方法要么属于该类本身,要么属于类的一个对象。
永远不能独立执行方法,执行方法必须使用类或者对象作为调用者。

方法的参数传递是值传递,就是将实际参数值的复制品传入方法内,而参数本身不会受到任何影响。

形参个数可变的方法定义:

public static void test(int a ,String... books){
	
	// books被当做数组处理
	for(String book:books){
	}
}

//调用上面的方法
public static void main(String[] args) {
	类名.test(5,"第一个参数""第二个参数""第三个参数""第四个参数""第五个参数");

	// 也可以传入一个数组
		类名.test(5,new String[]{"第一个参数""第二个参数""第三个参数""第四个参数""第五个参数"});
}

递归方法:即方法的再自己付方法体中调用方法自己本身;

方法重载:同一个类里定义多个同名的方法,只要形参列表不用,即被称为方法的重载,至于其他部分,如方法返回值类型,修饰符等,与方法的重载没有如何关系。

成员变量与局部变量

成员变量指在类里定义的变量,局部变量指在方法中定义的变量。

隐藏和封装

封装是面对对象的三大特征之一,将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。

访问修饰符:
private(当前类访问修饰符):类中的成员变量,方法被该修饰符修饰,则这个方法或者成员只能在当前类中被访问。
default(包访问权限):不适用人修饰符修饰的成员或者类或者方法,默认被这个修饰符修饰,这个访问权限控制的成员或者外部类可以被相同包下的其他类访问。
protected(子类访问权限):被这个修饰符控制的成员既可以被同一个包的其他类访问,也可以被不同包中的子类访问。
public(公共访问修饰符):最宽松的访问控制级别,基本可以被所有类访问。
访问控制级别表

类的继承

Java的继承是通过 extends 关键字类实现,实现继承的类被称为子类,被继承的类被称为父类。
子类继承了父类,即可以说明子类是一个特殊的父类,例如:苹果类继承了水果类,可以说苹果是一种特殊的水果。
子类继承父类后,可以继承父类中所有不被 private,protected修饰的成员变量和成员方法。而在子类中可以使用 super 关键字直接调用这些变量和方法。

多态

Java引用变量有两个类型,一个编译时类型,一个运行时类型。编译时类型由声明该变量时使用的类型决定,运算类型由世界赋给该变量的对象决定。如果编译时类型和运行时类型不一致就可能出现所谓的多态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值