大数据day06笔记

封装
修饰符
修饰符本类同一个包中的类子类其他类
public可以访问可以访问可以访问可以访问
protected可以访问可以访问可以访问不能访问
默认可以访问可以访问不能访问不能访问
private可以访问不能访问不能访问不能访问
接口
接口的概述

接口可以堪称是特殊的抽象类。既只能包含有抽象方法的抽象类:

interface Baller{

​ public static int DEFAULT_SPEED=50;

​ public void run();

}

接口的实现

​ 与继承不同,一个类可以实现多个接口,实现的借口直接用逗号分割。当然,该类需要实现这些接口中定义的所有方法;

​ 一个类可以通过implements关键字“实现”接口。一个类实现了某个接口后必须实现该接口中定义的所有方法。

1557539185321

接口的实现

接口间可以存在继承关系,一个接口可以通过extended关键字继承另一个接口。子接口继承了父接口中定义的所有方法。

1557539208851

接口的优点

1、类与接口的关系,实现关系,而且是多实现,一个类可以实现多个接口,类与类之间是继承关系,Java中的继承是单一继承,一个类只能有一个父类,打破了继承的局限性。

2、对外提供规则(USB接口)

3、降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)

抽象类的特点:
  • 1、抽象方法只能放在抽象类中;

  • 2、抽象类和抽象方法都是被abstract修饰的;

  • 3、抽象类不能创建对象(不能被实例化);

  • 4、抽象类中可以有非抽象方法的;

  • 5、抽象类和类的关系是继承关系;

  • 6、如果一个类继承了抽象类,要么要重写所有的抽象方法,要么就他本身设置成抽象类;

    抽象类

    abstract:关键字,用于修饰方法和修饰类;

    抽象方法:不同类的方法是相似的,但是具体实现的内容不一样;

    所以我们只能抽取它的声明,没有具体的方法体

    抽象类:有抽象方法的类就是抽象类;

    一个类继承了抽象类需要重写抽象类中的抽象方法;

package cn.tedu.day06;

public class Person {
String name;
int age;
char gender;

public Person(String name,int age,char gender){
	this.name=name;
	this.age=age;
	this.gender=gender;
}
public void eat(){
	System.out.println("吃饭");
}
public void sleep(){
	System.out.println("睡觉");
	
}
public void printInfo(){
	System.out.println("名字:"+name+"年龄:"+age+"性别:"+gender);
}
}
//设计的接口
interface SpeakChinse{
	public abstract void speak();
}
//设计的抽象类
abstract class Player extends Person{
	public abstract void study();
}
abstract class Coach extends Person{
	public abstract void teach();
}
//篮球运动员
class BasketBall extends Player{

	@Override
	public void study() {
		// TODO Auto-generated method stub
		System.out.println("学习扣篮");
	}
}
//乒乓球运动员
class Pinp extends Player{

	@Override
	public void study() {
		// TODO Auto-generated method stub
		System.out.println("学习打乒乓球");
	}
}
//篮球教练
class BasKetBallCoach extends Coach{

	@Override
	public void teach() {
		// TODO Auto-generated method stub
		System.out.println("教扣篮");
	}
	
}
//乒乓球教练
class PinpCoach extends Coach{

	@Override
	public void teach() {
		// TODO Auto-generated method stub
		System.out.println("教打乒乓球");
	}
	
	
	
}
package cn.tedu.day06;

public class PersonTest {
public static void main(String[] args) {
	//创建一个对象NBA篮球运动员对象
	BasketBall b=new BasketBall();
	b.name="库里";
	b.age=30;
	b.gender='男';
	b.eat();
	b.sleep();
	b.study();
	System.out.println("------------");
	PinpCoach pc=new PinpCoach();
	pc.name="刘国梁";
	pc.age=38;
	pc.gender='男';
	pc.eat();
	pc.sleep();
	pc.teach();
}
}

学生类
  • private的使用
  • 通过对象直接访问成员变量,这样操作,会引起数据的安全问题;
  • 考虑:能不能不让外界直接访问对象的成员变量???
  • 使用private解决:
  • private:
  • 是一个修饰符;
  • 可以修饰成员变量,也可以修饰成员方法;
  • 被private修饰的成员只能在本类中被访问;
  • 提供相应的getXxxx()和setXxxx()方法用于获取和设置成员变量的值;
  • 方法用public修饰;
package cn.tedu.day06;

public class Student {
	//成员变量
String name;
//int age;
private int age;
public int getAge(){
	return age;
}
public String getName(){
	return name;
	}
public void setName(String name){
	this.name=name;
	}
public void setAge(int age){
	if(age<0||age>150){
		System.out.println("年龄不符合");
	}else{
		this.age=age;
	}
	public void printInfo(){
		System.out.println("姓名"+name+"年龄"+age);
	}
	//this.age=age;
}
//成员方法

public void printInfo(){
	System.out.println("姓名"+name+"年龄"+age);
	
}
}

package cn.tedu.day06;

public class StudentTest {
public static void main(String[] args) {
	Student s=new Student();
	s.name="张无忌";
	s.setAge(22);
	int age=s.getAge();
	s.printInfo();
	
	s.setAge(23);
	s.name=("赵敏");
	//s.age=20;
	//s.age=99;
	s.printInfo();
}
	
}

动物的接口
  • 接口:
  • 成员的特点:
  • 1、只能使用抽象方法
  • 2、只能有常量;
  • 3、默认使用public abstract修饰方法
  • 默认使用public static final修饰成员变量
  • 使用的时候:
  • 1、接口不能被实例化
  • 2、类与接口是实现的关系,一个类实现一个接口必须实现他所有的方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值