java基础笔记(6)----面向对象的三大特性

简介:面向对象的三大特性就是封装,继承,多态,是面向对象的核心。

  1. 封装

    1. 简介:封装是类的边界,可以对数据起到保护作用
    2. 特性:属性私有,提供公开的get/set方法

      1. 属性私有:private 数据类型 变量名;---->private修饰的属性只能在本类使用
      2. 公开的get/set方法 public修饰---- >在任何类中都可以使用

        1. get方法:----获取属性的值

          public 数据类型 getXxx(){

          return this.属性名

          }

        2. set方法:----修改属性的值

          public void setXxx(数据类型 变量名){

          this.属性名=变量名

          }


package com.lvsling.test;

public
class Student {

private String name;

private
int
age;

private String clazz;

public Student() {

super();

// TODO Auto-generated constructor stub

}

public Student(String name, int age, String clazz) {

super();

this.name = name;

this.age = age;

this.clazz = clazz;

}

public String getName() {

return
name;

}

public
void setName(String name) {

this.name = name;

}

public
int getAge() {

return
age;

}

public
void setAge(int age) {

this.age = age;

}

public String getClazz() {

return
clazz;

}

public
void setClazz(String clazz) {

this.clazz = clazz;

}

}

  1. 继承

    1. 思想:类和类的共性,提取出来定义到父类中,由子类去继承。
    2. 语法: 关键字extends ----- >class 子类名 extends 父类名
    3. 特点:单继承-----一个子类只能有一个直接父类,一个父类可以有多个子类
    4. 子类对象的创建过程:

      1. 分配空间(父类和子类)---------给所有属性赋默认值
      2. 递归的创建父类对象
      3. 初始化本类属性----------给属性赋初值
      4. 调用本类构造方法------------给属性第三次赋值

package com.lvsling.test;

public
class Monitor extends Student {

private String monitor;

public Monitor() {

super();

}

public Monitor(String monitor) {

super();

this.monitor = monitor;

}

public String getMonitor() {

return
monitor;

}

public
void setMonitor(String monitor) {

this.monitor = monitor;

}

public
void testMonitor(){

System.out.println("test----monitor...");

}

}

  1. 多态

    1. 简介:父类的引用可以指向其不同子类的对象
    2. 使用特点

      1. 子类对象,始终不变
      2. 编译时,只能使用父类中有的方法;
      3. 运行时,子类中覆盖的方法优先执行,没有覆盖的方法,则执行从父类中继承到的方法
    3. 引用类型的相互转换-------目标类型和源类型必须兼容(存在继承关系)。

      1. 自动类型转换(向上转型---装箱)-----目标类型>源类型;
      2. 强制类型转换(向下转型----拆箱)-----目标类型<源类型;

        注意:向下转型时,父类引用指向子类对象,必须和要转换的类型一致,否则只能保证编译时ok,运行出现ClassCastException

    4. interfaceof关键字---判断引用所指向的对象类型和后面的类型是否兼容
    5. 应用:

      1. 多态用在方法的参数上:方法的形参如果是父类类型,则给该方法传递的实参类型可以是其所有子类的对象
      2. 多态使用在方法的返回值上:方法的形参类型如果是父类类型,则该方法可以返回,其所有子类的对象
    6. 好处:

      1. 对于使用者屏蔽因参数/返回值不同而带来的差异,使用方法的调用更简单,通用灵活。

package com.lvsling.test;

public
class Test1{

public
static
void main(String[] args){

Animal a=new Dog();

a.eat();

a.test();

Dog d=(Dog)a;

d.lookHouse();

if(a instanceof Dog){

d.lookHouse();

}

}

}

//父类

class Animal{

//封装属性

private String name;

//构造方法

public Animal(){}

public Animal(String name){

this.name=name;

}

public String getName(){

return
this.name;

}

public
void eat(){

System.out.println("------eat-------");

}

public
void test(){

System.out.println("------test-------");

}

}

//子类

class Dog extends Animal{

//方法覆盖

public
void eat(){

System.out.println("------eat骨头-------");

}

public
void lookHouse(){

System.out.println("------lookhouse-------");

}

}

class Cat extends Animal{

public
void eat(){

System.out.println("------eatfish-------");

}

public
void climbTree(){

System.out.println("------climbTree-------");

}

}

  1. 拓展与提升

    1. 方法修饰符:

      1. private-----本类可用,
      2. 默认(什么都不写)----本类可用,同包可用
      3. protected ----本类可用,同包可用,不同包的子类可用
      4. public ----公共的都可用

        以上4个访问修饰符都可以用来修饰属性和方法,只有public和默认可以修饰类

    2. 方法覆盖:----override

      1. 在子类中,把父类中继承到的方法进行重新实现
      2. 要求:返回值类型,方法名和形参列表都必须相同,访问修饰符可同或者更宽。
      3. 使用:子类对象名.方法名(实参)

原文地址:https://www.cnblogs.com/lvsling/p/8454390.html

时间: 2024-10-07 14:13:25

java基础笔记(6)----面向对象的三大特性的相关文章

java学习中,面向对象的三大特性:封装、继承、多态 以及 super关键字和方法的重写(java 学习中的小记录)

java学习中,面向对象的三大特性:封装.继承.多态 以及 super关键字和方法的重写(java 学习中的小记录) 作者:王可利(Star·星星) 封装     权限修饰符:public 公共的,private 私有的     封装的步骤:          1.使用private 修饰需要封装的成员变量.          2.提供一个公开的方法设置或者访问私有的属性              设置 通过set方法,命名格式:     set属性名();  属性的首字母要大写 访问 通过ge

java基础篇(二) ----- java面向对象的三大特性之继承

java面向对象的三大特性之继承: 复用代码是java众多引人注目的功能之一,但是想要成为极具革命性的语言,仅仅是复制代码并对其加以改变是不够的.它必须能够做更多的事.引自<Think in java>    而代码复用也是程序员一直不断追求的.由此来说下代码复用的一种方式 java面向对象的三大特性--继承!! 在面向对象程序设计中,继承机制可以有效地组织类的结构.确定类之间的关系,在已有类的基础上开发新的类.继承机制在程序代码复用.提高软件开发效率.降低软件系统维护成本等方面具有重要作用.

java基础篇(一) ----- java面向对象的三大特性之封装

java面向对象的三大特性之封装:   封装(Encapsulation)是面向对象的一个重要特征,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节. 通俗的讲所谓封装就是将属性和方法捆绑到一起,封装到一个对象中去, 形成一个不可分割的独立单位,以及尽可能隐藏对象的内部结构,也就是说,如果我们使用了封装技术的话,别人就只能用我们做出来的东西而看不见我们做的这个东西的内部结构了. 如果形容一个人(假设把人看做一个类),我们可以用姓名.年龄,性别等来描述,如果不封

Java基础—面向对象的三大特性

面向对象有三大特性分别是继承.封装和多态. (1)继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类那里继承方法和实例变量,并且子类可以修改或增加新的方法使之更适合特殊的需要. (2)封装:封装是指将客观事物抽象成类,每个类对自身的数据和方法实行保护.类可以把自己的数据和方法只让可信的类或者对象

菜鸟笔记 -- Chapter 6.4 面向对象的三大特性

6.4.1  三大特性概述 面向对象的三大特性是Java中一个很重要的基本理念. 封装是面向对象的核心思想.将对象的属性和行为封装起来,其载体就是类,类通常对客户隐藏其实现细节,这就是封装的意思.采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易地直接操作此数据结构,只能执行类允许公开的数据.这样就避免了外部操作对内部数据的影响,提高了程序的可维护性. 继承和多态是面向对象开发语言中非常重要的一个环节,如果在程序中使用得当,可以将整个程序的架构变的非常有弹性,同时可以减少代码的冗

面向对象的三大特性之继承-基础知识总结------彭记(05)

面向对象的三大特性之继承: js中的某些对象没有一些需要的属性和方法,但是另外的对象有,那么拿过使用,就是继承. js中继承的实现方式: 1.混入式继承:通过循环将一个对象中的所有属性和方法混入到另外一个对象中: var me={ work:function(){ console.log('敲代码'): } }: var mayun={ money:9999999, car:'000', manager:function(){ console.log('管理巴巴...'); } } /*遍历,让

java面向对象的三大特性

1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③继承来的属性和方法是隐式的,也就是在本类里面是看不见的. ④一个类只能有一个父类,也就是类只能是单继承. ⑤一个接口可以有多个父类,也就是接口可以是多继承. 实际项目开发中,一个类继承于另一个类,那么前者就是后者的子类,反则反之. 什么是封装? 对象数据和操作该对象的指令都是对象自身的一部分,能够实现尽可能对外

面向对象基础和面向对象的三大特性之一:封装(20161024)

面向对象 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Con

面向对象—基础、名称空间、三大特性

一.面向对象的简介 面向对象 初识 一种新的编程思路 面向过程开发:想要一个结果 写代码 实现计算结果 面向对象开发:有哪些角色 角色的属性和技能之间是如何交互的 什么时候用? 复杂的 拥有开放式结局的程序 比较适合使用面向对象开发 游戏 购物 例子:人狗大战 alex = {    'name': 'alex',    'sex': '不详',    'job': '搓澡工',    'level': 0,    'hp' : 250,    'weapon':'搓澡巾',    'ad' :