首页 > 编程语言 >java基础-面向对象

java基础-面向对象

时间:2024-07-25 23:28:48浏览次数:17  
标签:java Person 子类 void 基础 面向对象 new Girl public

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

Java一门面向对象编程语言。面向对象的特点:抽象、封装、继承、多态。

一、抽象

编程的目的就是将现实的事物抽象为计算机可以理解的代码。

二、封装

目的是将事物的信息放到一个类中表达,可以控制类和类中属性的访问权限。

优点:

  1. 减少耦合:可以独立开发、测试、优化、使用、理解和修改。
  2. 减轻维护负担
  3. 有效地调节性能
  4. 提高软件的可复用性
  5. 降低构建大型系统的风险:即使整个系统不可用,但是这些独立的模块却有可能是可用的。

三、继承

实现IS-A关系,如小明和人就是一种IS-A关系。可以实现对类的复用,通过继承一个现有的类。可以是使用已经定义的类中的方法和变量。注意:类的方法可以被继承,但是类的构造器不能被继承。

类的继承访问控制:

代码示例如下:

父类:Person.java

package org.example.面向对象;

public class Person {
    String name;//虽然是default但是子类在同一个包下是可以访问的
    public Integer age;
    private Integer money;
    public void dance(){
        System.out.println("跳舞");
    }
    public void sing(){
        System.out.println("唱歌");
    }
    private void getMoney(){
        System.out.println("去现金");
    }

}
子类:Girl.java
package org.example.面向对象;

public class Girl extends Person{//女孩也是person所以拥有person的属性
    //也会有name和age属性
    public static void main(String[] argss){
        Girl girl=new Girl();
        girl.name="我是小红";

        girl.dance();

    }
}

四、多态

1、一个类型为S的变量既可以指向类型为S的对象,又可以指向S的任何子类的对象。方法重写和向上类型转换都是泛型的体现。

  • List list=new ArrayList()//实现为不同的子类
  • List list=new LinkedList();

2、以多态的形式来传递参数,增强了参数类型的灵活性

  • 如:public void getName(Collection col);
  • 其中Collection就是接口,调用的时候可以传递任何子类型,从而实现多态。

3、一个对象只能有一种确切的数据类型(new 的时候只能有一种类型)

4、一个引用类型如果声明为父类的类型,到实际引用的是子类对象,那么改变量不能访问子类中添加的属性和方法。

  • List list=new ArryList();

代码如下:

Person.java

package org.example.面向对象;

public class Person {

    /*多态*/
    private String name="p";
    public void getName(){
        System.out.println("name="+name);
    }

}

Test.java

package org.example.面向对象;

public class Test {
    /*多态*/
    public void printPerson(Person p){
        p.getName();
    }

    public static void main(String[] args){
        Person p=new Person();//父类可以实例化任何一个子类
        p=new Girl();
        p.getName();//这里声明为Person,不能调用Girl的函数

        Test t=new Test();//可以传递不同的子类
        t.printPerson(new Girl());
    }
}

Girl.java

package org.example.面向对象;

public class Girl extends Person{//女孩也是person所以拥有person的属性
   
    /*多态*/
    @Override
    public void getName(){
        System.out.println("girl name");
    }

    public void sing(){
        System.out.println("girl sing");
    }
}

以上是代码练习

标签:java,Person,子类,void,基础,面向对象,new,Girl,public
From: https://blog.csdn.net/2201_75709573/article/details/140700643

相关文章

  • 利用Java Swing实现在线游戏盒子:连连看游戏
    盒子实现游戏......
  • 日撸Java三百行(day03:基本if语句)
    文章目录:一、if、then、else1.if语句的第一种格式2.if语句的第二种格式3.if语句的第三种格式二、方法(函数)的调用1.方法定义1.1最简单的方法定义1.2带参数的方法定义1.2.1单个参数的方法定义格式1.2.2多个参数的方法定义格式1.3带返回值的方法定义2.方法的调用2.1......
  • JavaWeb笔记_JSTL标签库&JavaEE三层架构案例
    一.JSTL标签库1.1JSTL概述 JSTL(jspstandardtaglibrary):JSP标准标签库,它是针对EL表达式一个扩展,通过JSTL标签库与EL表达式结合可以完成更强大的功能  JSTL它是一种标签语言,JSTL不是JSP内置标签  JSTL标签库主要包含:   ****核心标签     ......
  • 自学java第二天
    String类型的基本使用String是引用数据类型,变量定义的格式为:String变量名="";""中的内容可以是任意的,叫做字符串,与char不同,char类型叫做字符,里面只能有一个内容。String的运算规则,在和基本数据类型进行运算时,会进行拼接的操作。例如:publicclassindex{publicst......
  • Java中的object类与objects类
    Java中的Object类和Objects类在Java类库中扮演着不同的角色,它们之间存在明显的区别。Object类基础与根源:Object类是Java类层次结构的根类。这意味着Java中的每一个类(除了Object类本身)都直接或间接地继承自Object类。Object类位于java.lang包中,这个包是Java的核心包之一,自......
  • Java中的日志管理:SLF4J与Logback
    Java中的日志管理:SLF4J与Logback大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!本文将介绍如何在Java中使用SLF4J与Logback进行日志管理,帮助您在项目中实现高效的日志记录和管理。一、SLF4J与Logback简介SLF4J(SimpleLoggingFacadeforJava)是一种简单......
  • 使用Apache Camel进行Java企业集成
    使用ApacheCamel进行Java企业集成大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!本文将介绍如何使用ApacheCamel进行Java企业集成,帮助您在企业应用中实现高效的数据交换和流程自动化。一、ApacheCamel简介ApacheCamel是一个强大的开源集成框架,它提......
  • 常见日志输出目标(Logback | Log4j2 | Java Util Logging)
    常见日志输出目标控制台:日志可以被输出到控制台(终端),通常用于开发和调试阶段。在日志框架中,控制台输出通常由ConsoleAppender(例如Log4j、Logback)配置。日志文件:日志也可以被写入到日志文件中,以便于长期存储和分析。在日志框架中,文件输出通常由FileAppender(例如Log4j、......
  • java | final 关键字介绍
    在Java中,final关键字用于声明一个常量、不可改变的变量、方法或类。对于如privatefinalStringUtilstringUtil;这种情况,final关键字具有以下作用:final的作用不可重新赋值:final修饰的变量在初始化之后,不能被重新赋值。对于privatefinalStringUtilstringUtil;,这意味着一......
  • Java简介及JDK的安装
    一、JAVA语言概述1.java语言的发展Java的开发者为詹姆斯·高斯林。转至sun公司,后参与“绿色计划”,发展了一套语言“Oak”,之后改名为Java(爪蛙)。2.Java语言的平台版本JavaSE标准版本:为普通开发桌面和商务应用程序提供的解决方案;此技术为后两项的基础,可以完成一些桌面的开发。......