Java基础-面向对象

简介: 什么是面向对象

什么是面向对象

方法

  • 修饰符
  • 返回类型
  • break跳出switch,结束循环和return的区别
  • 方法名:注意规范

方法的调用:递归

  • 静态方法static可以直接调用到另一个类通过类+方法名()调用
  • 非静态方法时要通过new来实例化对象
  • 类名 +名字=new +类();
  • 在main方法中值是不受方法中相同值的影响返回后的值依旧是main方法中的值
  • 引用传递:对象,本质还是值传递
  • 创建初始化对象
  • 一个项目应该只有一个mian方法
  • 1.类与对象
  • 类是一个模板:抽象,对象是一个具体的实例 2.方法

封装

  • 高内聚,低耦合
  • 重要是private 方法
  • 提供一些可以操作的方法
  • 提供get/set
private String name;
    public String getName() {
        return this.name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
public static void main(String[] args) {
    dem01 stu=new dem01();
    stu.setName("aaaa");
    System.out.println(stu.getName());
}
  • 提高程序的安全性,保护数据
  • 影藏代码的实现细节
  • 统一接口

继承

  • this只当前类
  • super指向父类
  • super调用父类的构造方法,必须在构造方法的第一个
  • super必须只能出现在子类的方法或者构造方法中
  • super和this不能同时调用构造方法

Vs this:

  • 代表的对象不同
  • this:本身调用者这个对象
  • super:代表父类对象的应用

前提

  • this:没有继承也可以
  • super只有在继承条件才可以使用

构造方法

  • this();本类的构造
  • super():父类的构造!

重写:需要有继承关系,子类重写父类的方法

  1. 方法名必须相同
  2. 参数列表列表必须相同
  3. 修饰符:范围可以扩大 publi>protected>default>private
  4. 抛出的异常:范围可以缩小不能扩大
  5. 父类的功能,子类不一定需要,或者不一定满足

多态

  • 多态就是一个父类可以指向多个子类
  • 对象能执行那些方法,主要看左边的类型,虽然new的一样,执行的是子类的方法
  • static方法不能重写,属于类,不属于实例
  • final常量
  • private方法
  • instanceof来判断是否编译成功

static

  • static静态的变量
  • 静态直接使用类名来访问
  • 非静态使用实例化的对象名字来访问
  • 代码块顺序static>{}>public
  • static{}只执行一次
  • import静态导包可以直接用不需要方法.

抽象类

public abstract class lin(){ public abstract void a();};

  • 不能new这个抽象类,只能靠子类去实现它,约束!
  • 抽象类中可以写p't

接口

  • 普通类:只有具体实现
  • 抽象类:具体实现和规范(抽象方法)都有
  • 接口:只有规范!无法写方法,面向接口编程
  • 接口的本质是契约
  • 声明类的关键词是class,声明接口的关键字是interface
  • 接口中的所有定义其实都是抽象的
  • void+名字(//返回值)
  • 接口都需要有实现类
  • 抽象类:extends
  • 类可以实现接口implements接口
  • 实现了接口的类必须要重写方法
public interface dem0 {
     void add(System name);
     void delete(System name);
     void updata(System name);
     void query(System name);
}
public class usersevericImpl implements dem0 {
    @Override
    public void add(System name) {
    }
    @Override
    public void delete(System name) {
    }
    @Override
    public void updata(System name) {
    }
    @Override
    public void query(System name) {
    }
}
  • 多继承~利用接口实现多继承

接口的作用

  • 约束
  • 定义一些方法,让不同的人实现
  • public abstract
  • public static final
  • 接口不能被实例化,接口中没有构造方法
  • implements可以实现多个接口
  • 必须要重写接口中的方法

内部类

  • 1个Java可以有多个class类,但是只能有一个public calss
类 +变量名= new+类();
变量名.内部类名 方法名 = 变量名.new 内部类方法();


相关文章
|
7天前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
21天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
5天前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
15 4
|
7天前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
22天前
|
安全 Java Go
面向对象程序设计语言:Java
Java语言语法和C语言和C++语言很接近,很容易学习和使用,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的特性,Java语言不使用指针,而是引用,并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧
36 2
|
2月前
|
Java 数据处理 开发者
【Java基础面试十二】、说一说你对面向对象的理解
这篇文章阐述了面向对象是一种以类和对象为基础,通过封装、继承和多态等概念来模拟现实世界中的事物及其相互关系的程序设计方法,它强调以事物为中心进行思考和系统构造,与结构化程序设计相比,更符合人类的自然思维方式。
【Java基础面试十二】、说一说你对面向对象的理解
|
2月前
|
Java
【Java基础面试十三】、面向对象的三大特征是什么?
这篇文章介绍了面向对象程序设计的三大基本特征:封装、继承和多态,其中封装隐藏对象实现细节,继承实现软件复用,多态允许子类对象表现出不同的行为特征。
【Java基础面试十三】、面向对象的三大特征是什么?
|
11天前
|
Java 开发者
Java 面向对象
Java 是一种面向对象的编程语言,通过对象与类的概念组织代码和数据。面向对象编程的核心包括类、对象、继承、多态、封装和抽象。类是对象的蓝图,定义了属性和行为;对象则是类的实例。继承允许子类继承父类的属性和方法,增强代码复用性;多态则支持通过相同接口调用不同类型对象的行为,包括方法重载和重写。封装通过公共方法隐藏对象细节,提高安全性;抽象则对对象特征进行提炼,通过抽象类和接口实现。理解这些概念有助于设计高效、可维护的 Java 应用程序。
|
18天前
|
Java 开发者
Java编程之旅:探索面向对象的力量
【9月更文挑战第16天】在编程的世界中,Java以其强大的面向对象编程特性而闻名。本文将带你走进Java的世界,一起探索类与对象的奥秘,学习如何通过封装、继承和多态性构建健壮的软件系统。无论你是初学者还是有经验的开发者,本文都旨在提供实用的代码示例,帮助你提升Java技能。准备好开始这段旅程了吗?让我们启程吧!
|
2月前
|
Java 开发者 C++
下一篇
无影云桌面