java-面向对象

面向对象

1.1面向对象简介
面对对象是将各种事务按照一定规划划分为多个独立的对象,然后通过调用对象的方法来解决问题,当应用程序功能发生变动时,只需要修改个别对象就可以使代码维护更容易。

1.2面向对象的特点
面对对象特点:
1.封装性
第一层意思:把对象的属性和行为看成一个整体,将俩者封装在一起
第二层意思:信息隐藏,不想让外界知道信息,如private权限
简单来说:人们开车,只需要学习怎么开好车就行,不需要知道汽车内部如何工作的

2.继承性
继承性主要描述是类与类之间的关系,通过继承,可以在无须重新编写原有类的情况下,继承类的功能以及类的扩展

3.多态性
多态性是指一个类中定义的属性和方法被其它类继承后可以具有不同的数据类型或行为


类的定义

类是java中一个重要引用数据类型,类是对象的抽象,用于描述一组对象的共同特征和行为。

类的定义格式

class 类名{
成员变量;
成员方法;
}

练习:写一个学生类

class Student {
	String name;                  //字符串类型姓名,name
	int age;  				      //整数型类型年龄,age
	String sex;					 //字符串类型性别,sex
void read(){                 //定义读的方法,也就是输出显示
	String score;       
	System.out.println("hello,我是" + name + ",正在看书");
}
}

注意: score是局部变量 ,name age sex是成员变量

访问控制

java提供了四种控制权限
private:属于私有访问权限,修饰类的属性和方法,类成员使用了private关键字后则该成员只能在本类中进行访问
default:属于默认访问权限,默认的访问权限可以被本包中的其它类访问,但是不能被其它包访问
如:在这里插入图片描述
protected:属于受保护的访问权限,只能被本包以及不同包的子类访问
public:属于公共访问权限,可以在所有类中被访问,不管是否在同一包中

public class Test{
	public int a;        //所有类访问
	protected String b;		//所有子包以及本包的类使用
	void c (){				//default权限,本包访问内使用
	System.out.println("访问权限");
}
	private class InnerClass(){    //只能在本类使用
}
}

#注意类名只能被public修饰或者不写修饰名
封装

类的封装指将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象的内部信息,而是通过特有的方法才能操作访问,什么方法呢??

定义一个private私有属性的类后,就只能在此类中访问,外界想要访问需要通过setter和getter方法设置和获取属性值。

public  class Animal {  
	private String name;
	private int age;             //私有属性
	
	 //get方法
	public String getName() {    
		return name;
	}
	//set方法
	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}	
}

#alt+shift+s+r快捷键,把set和get方法一次性输出

继承

概念:继承是指现有类的基础上构建一个新的类,原有的类称父类,新创建的类称为子类,子类继承父类的属性和方法,使得子类具有父类的特征和行为。

格式:

 class 子类 extends 父类{
......
}
#案例
#先定义一个动物Animal类
public  class Animal {  
	private String name;
	private int age;             //私有属性
	
	 				//get/set方法,让外界能够访问
	public String getName() {    
		return name;
	}
	//set方法
	public void setName(String name) {
		this.name = name;
	}
	
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}	
}

#定义一个Cat类,继承Animal类
public class Dog extends Animal {
//没有任何定义
}

#定义一个测试类进行测试
public class Example01 {
public static void main(String[] args) {
	Cat c = new Cat();   //创建一个Cat类的实例对象
	c.setName("牧羊犬");   //访问的是父类中的,子类中没有定义
	c.setAge(3); 
	System.out.println(c.getName() +"," + c.getAge());
}
}

方法的重写

子类中出现一个和父类一样的一个声明,不会继承父类之前的特征,子类在重写定义的权限不能小于父类使用的权限,否则会编译错误

super关键字

因为子类重写父类方法后,无法访问到父类的方法,而super关键字可以在子类中调用父类的普通属性,方法和构造方法。
格式:super.成员变量

super和this的区别
关键字概述:
this:代表本类对象的引用
super:代表父类对象的引用
关键字使用:
this.成员变量  (访问本类成员)
super.成员变量 (访问父类成员)
构造方法:
this()
super()
find关键字

find概述:可以修饰成员方法,成员变量,类
find修饰变量,不能再次赋值
find修饰类,类不能继承
find修饰方法,不能被重写
局部变量不能用访问权限修饰

find int x = 20;    //find修饰基本变量,只能赋值一次
x = 20;					//再次赋值会报错
system.out.println(x);

快捷键构造方法

Alt+shift+s+c:无参构造方法
Alt+shift+s+o:有参构造方法
Alt+shift+s+倒数第四个,toString()
Alt+shift+s+r:set/get构造方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神慕蔡蔡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值