Java-类和对象

9 篇文章 0 订阅

类和对象

类:抽象笼统的概念,用于描述具有相同特征行为的一类事物
例:学生是一个类

对象:类衍生出来的一个具体的个体,与自己的类有相同的特征和行为
例:二年级三班的李华是一个对象

类的构成:
  • 一、属性:用于静态描述(特征)
    学生的名字 年龄 性别
    组成部分:修饰符 数据类型 属性名字 [= 值] []内不是必须有
    /**
	 *  public:修饰符  String:数据类型 name:属性名 =:赋值符 "XL":值
	 */
     public  String name = "XX";
  • 二、方法:用于动态动作行为(做事)
    学生会睡觉 写作业 泡妞
    组成部分:权限修饰符 [特征修饰符] 返回值类型 方法名 (参数列表) [抛出异常]{
    方法体
    } []内不是必须有
    /**
	 *  李华的约会  public:权限修饰符  static:特征修饰符 boolean:返回值类型 date:方法名 (boolean isRain,boolean isRun):参数类表 throws Exception:抛出异常 {}:方法体
	 * @param isRun  媳妇有没有跑路 true:跑了抛出异常 false:没有
	 * @param isRain 是否下雨 true:取消约会 false:约会
	 * @return
	 * @throws Exception
	 */
	public static boolean date(boolean isRain,boolean isRun) throws Exception{ 
		if (isRun) {
			throw new RuntimeException("媳妇跟人跑了");
		}
        if (isRain) {
        	System.out.println("下雨啦 没约会成功");
        }else {
        	System.out.println("约会成功");
        }
		return  isRain;
	}
类的创建:
public class Student {
	 // 姓名:李华
     String name = "李华";
     // 年龄:15
     int age = 15;

	/**
	 *  李华的约会  public:权限修饰符  static:特征修饰符 boolean:返回值类型 date:方法名 (boolean isRain,boolean isRun):参数类表 throws Exception:抛出异常 { 
		if (isRun) {
			throw new RuntimeException("媳妇跟人跑了");
		}
        if (isRain) {
        	System.out.println("下雨啦 没约会成功");
        }else {
        	System.out.println("约会成功");
        }
		return  isRain;
	}:方法体
	 * @param isRun  媳妇有没有跑路 true:跑了抛出异常 false:没有
	 * @param isRain 是否下雨 true:取消约会 false:约会
	 * @return
	 * @throws Exception
	 */
	public static boolean date(boolean isRain,boolean isRun) throws Exception{ 
		if (isRun) {
			throw new RuntimeException("媳妇跟人跑了");
		}
        if (isRain) {
        	System.out.println("下雨啦 没约会成功");
        }else {
        	System.out.println("约会成功");
        }
		return  isRain;
	}
}

类的初始化:
//Student:类名(数据类型) student:对象名 =:赋值符号 new:初始化关键字 Student():Student类的构造方法
Student student = new Student();
// 给student对象设置姓名和年龄
student.name = "李华";
student.age = 15;

类和类之间的关系:

一、A is-a B 泛化(继承 实现)
java中继承为单继承 可以传递继承即A继承B,B继承C,那么A也继承了C

  • 子类继承父类通过关键字 extends 实现

  • 子类的对象可以调用父类中的(public protected)属性和方法,当作自己的来使用

  • 子类可以添加自己的属性和方法

  • 子类从父类中继承过来的方法不能满足子类需求,可以对方法进行重写(覆盖父类)的方法,重写的关键字

  • 方法重写(override)

    1. 产生继承关系的类,子类重写父类方法
    2. 权限修饰符 子类可以大于等于父
    3. 特征修饰符 final static abstract
      父类方法是final子类不能重写
      父类方法是static子类不存在重写
      父类方法是abstract子类必须重写
      (抽象类可以不重写)
    4. 方法名子类和父类必须保持一致
    5. 参数和父类必须保持一致
    6. 返回值子类必须小于等于父类
    7. 运行时 编译时
      父类方法抛出运行时异常,子类方法不予理会
      父类方法抛出编译时异常,子类抛出的编译异常个数小于等于父类
      父类方法抛出编译时异常,子类抛出的编译异常类型小于等于父类
  • 每个类都有继承类 有extends则继承该关键词后面的类,否则继承Object类,Object是所有引用类型的父类,Object没有父类
    Object中的方法:

    1. getClass:用来获取对象对应类的类映射(反射)
    2. hashCode :将对象在内存中的地址计算得到一个int整数
    3. equals :用来对比两个对象的内容
    4. clone:克隆对象:受保护的方法
    5. finalize:权限修饰符是protected,在对象被回收时默认调用的方法
    6. toString :打印输出时将对象变成一个String字符串
    7. notify:线程被唤醒
    8. notifyAll:所有线程被唤醒
    9. wait:线程进入挂起状态
  • 子类中重写了父类方法 仍要调用父类方法 可用super关键字调用

public class Preson {
	// 姓名
    String name;
    // 年龄
    int age;
    public void eat() {
         System.out.println("人都会干饭!");
    }
    
    public void sleep() {
         System.out.println("人都会睡觉!");
    }
}

public class Student extends Preson {
    // 语文成绩
    int chineseScore;
	public Student() {
		this.name = "小明";
		this.eat();
	}
	// 重写了父类(Preson)的sleep方法 满足子类(Student)的需求
    public void sleep() {
         System.out.println("学生要保证睡眠!");
    }
}

二、A has-a B 包含(组合 聚合 关联)

  • 组合:
    人和大脑的关系
    整体和部分的关系,不可分割,同时产生 同时消亡

  • 聚合:
    电脑和主板的关系
    整体和部分的关系,创建时有可能时分开的

  • 聚合:
    人有汽车
    整体和部分的关系,可以分割的 后来形成的

A use-a B 依赖(依赖)

  • 不是整体和部分的关系,因为某一件事情产生了联系,临时组合在一起,事情一旦做完关系立即解散
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值