java 第三次课—对象、类、包和接口

Java 面向对象编程完全入门:对象、类、继承、接口、包 五大核心概念一文通透 从零基础出发,用生活化比喻和完整可运行代码,一次性吃透 Java 面向对象编程的五大核心概念:对象、类、继承、接口、包。 阅读详情

第3章
对象、类、包和接口

  面向对象的概念
所谓面向对象的方法学,就是使我们分析、设计和实现一个系统的方法尽可能地接近我们认识一个系统的方法。包括:
 面向对象的分析(OOA, Object-Oriented Analysis)
 面向对象的设计(OOD, Object-Oriented Design)
 面向对象的程序设计(OOPL, Object-Oriented Program)
面向对象技术主要围绕以下几个概念:
 对象、抽象数据类型、类、类型层次(子类)、继承性、多态性。

  下面介绍基本概念
1 对象 Object
2 类 Class
3 实例 Instance
4 接口 Interface
5 类型 Type
6 引用 Reference
7 包 Package
8 封装 Encapsulation
9 继承 Inharitance
10多态 Polymorphism

 

1 对象
     所有东西都是对象。可将对象想象成一种新型变量;它保存着数据,但可要求它对自身进行操作。每个对象都有自己的存储空间,可容纳其他对象。每个对象都有一种类型。

同一类所有对象都能接收相同的消息。

    将对象进行抽象变成程序的“类”是编制程序的首要任务,同时也是程序设计优劣的关键。
class Person
{
    int age;
    ……
  
    void work() { … }
    ……
} 

2 类(class):抽象的集合概念     
   系统类库中已定义好的类,用户也可以自定义的类。

   类里面有属性,方法
    属性:状态,静态特性的描述。
    方法:行为,动态特性的描述。


   类的构造方法
构造方法的名字与类名相同。创建对象时自动调用对对象进行初始化操作。
构造方法前面没有返回类型定义,它没有返回值,也不是void。[不能return]
构造方法可以重载[多个构造方法但参数不同],可以继承[子类创建时先调用父类的,再调用自己的]。
JAVA每个类都至少有一个构造方法[系统默认无参数构造方法];一旦定义了构造方法,系统不再提供默认的[只有定义了有参数的,都需要再定义一个无参数的]。
你必须拥有一个合适的类才能创建一个合适的对象,有了合适的对象才能完成合适的工作。
类名 对象变量=new 类名([参数]);
  类名 对象变量;
  对象变量= new 类名([参数]);
对象的引用:
  对象名.成员变量名
  对象名.方法名([参数])

3 将类实例化之后就得到了实例(Instance)
class Person
{
  int age;
}
public class ObjtoObj
{
  public static void main(String[] args)
  {
     Person p1=new Person();//得到实例
     Person p2=new Person();
     p1.age=20;
     p2.age=30;
     System.out.println("p1.age:"+p1.age+" p2.age:"+p2.age);
     p1=p2;
     System.out.println("p1.age:"+p1.age+" p2.age:"+p2.age);
     p1.age=25;
     System.out.println("p1.age:"+p1.age+" p2.age:"+p2.age);
   }
}

4 接口  (后面详细说明)

 Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有

不同的行为(功能)。

5 类型 Type   略

6 引用 Reference  略

7 包

包的定义: package 包名;
位置: 程序的第一条语句
存放: Sun建议Internet域名倒置
编译: 使用javac –d . xxx.java
包的引用: import 包名.[类名|*];
位置: package语句[若有]和类定义之间
默认: 系统自动引入java.lang包[import java.lang.*]
路径: classpath:做为特殊的根目录使用,从这里展开对.class文件的搜索 。


package A;
public class Hello
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}

D:/Java>javac Hello.java 此程序可以编译通过.接着执行。
D:/Java>java Hello 但是执行时,却提示错误!

原因是我们把生成的Hello.class规定打包在D:/Java/A文件中,必须在A文件中才能去运行。所以应该在D:/Java目录下建立一个A目录,然后把把Hello.class放在它下面,执行时

,可正常通过!
D:/Java/>java A.hello 就会输出:Hello world!


现在介绍Java的import机制

我们在D:/Java目录下建立一个Tesy.java文件,其内容如下:
import A.Hello;
public class Test{
public static void main(String[] args){
Hello Hello1=new Hello();
}
}

D:/Java/>javac Test.java 编译成功!

D:/Java/>java Test运行成功!

 

8 封装
  将信息隐蔽的过程称为封装。
  封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。

  至少有两方面的原因促使我们控制对成员的访问。
防止程序员接触他们不该接触的东西。若只是为了解决特定的问题,只需操作接口即可。
允许系统人员修改内部结构,不用担心它会对程序员造成什么影响。

强内聚  弱耦合

Java提供4种访问权限: public,protected,private和friendly.

9 继承
    继承:现实世界中遗传关系的直接模拟, 它表示类之间的内在联系以及对属性和操作的共享。

    面向对象语言允许从一个已有的类[父类]定义新的类[子类],从而形成继承关系。

    子类继承了父类的属性,子类也可继承了父类的方法; 子类并不限于继承,还可以发扬光大;继承未必只有一层。

继承机制的意义
简化类或对象之间的接口
支持软件重用[代码重用]

Java使用关键字extends定义继承[不支持多重继承]
    extends表明要构建的新类是从一个现有类衍生的,现有类称为父类、超类、基类;而新类称为子类、派生类。

class Person
{
    int age;
    ……
  
    void study() {…}
    void work() {…}
    ……
} 

class Girl extends Person
{
    double moneyForDressing
    ……
  
    void shy() {…}
    ……
} 

10 多态
    多态性: “多种形态”,是允许一个接口被多个同类动作使用的特性。[希腊语]
    多态用来模拟物件的对环境的适应能力的!就相当于人的多面性,对不同的人就呈现出不同的一面。

同名方法的覆盖(override)和重载(overload)是多态两种完全不同的机制。
替代原则(substitution principle):父类可以用其子类代换。[替代过程也是子类向上转型的过程,向上转型是一种常用的安全的类型转换]。通过向上转型可实现多态性。

多态 override
覆盖的方法的标志必须要和被覆盖的方法的完全匹配,才能达到覆盖的效果;
覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

class A
{
    ……
    void gg() {…}
    void mm(int num) {…}
    ……
} 

class B extends A
{
    ……
   void gg() {…}
   void mm(int num){…}
    ……
} 


多态 overload
方法的重载:即多个方法用相同的名称,但参数行不同(不同的参数类型,不同的参数个数,不同的参数顺序)。[根据不同的参数样式,来选择合适的方法执行]

不能通过访问权限、返回类型、抛出的异常进行重载

多态转换 (cast)
 父类有的子类肯定有,子类有的父类不一定有   向上转换  ==>  子类可以自动转换成父类

上转型对象会失去原对象的一些属性和功能

从0到1做AI漫剧:即梦+豆包+剪映+红果全流程实战 AI视频生成正在重塑内容创作的生产方式,它让原本高门槛的影视制作,变成了一条由文本、画面、剪辑与分发环节协同的流水线。理解其底层原理,在于将大模型的语义理解、图像生成与视频合成能力,与工程化的流程管理相结合,从而实现从创意到成片的自动化输出。这种技术的价值,不仅体现在降低制作成本,更在于让个人创作者能够独立完成高质量短剧,并快速迭代内容。在短剧、短视频、广告营销等场景中,利用即梦生成画面、豆包编写剧本、剪映完成剪辑、红果进行分发的组合,已成为一种被广泛验证的实践路径。本文聚焦AI漫剧制作,从环境准备、分镜设 阅读详情

相关推荐

Android - 蓝牙开发

文章目录科普SIG类型制式编程Classic BluetoothBluetooth Low Energy蓝牙的UUID是什么?有什么用? 科普 https://zh.wikipedia.org/wiki/%E8%97%8D%E7%89%99 蓝牙(英语:Bluetooth),一种无线通讯技术标准,用来让固定与移动设备,在短距离间交换资料,以形成个人局域网(PAN)。其使用短波特高频(UHF)无线电波,经由 2.4 至 2.485 GHz 的 ISM(工业、科学、医疗)频段来进行通信。1994 年由电信商

qq_43323826的博客 1万+

Java类和对象(详解)

类是用来对一个实体(对象)来进行描述的,主要描述该实体(对象)具有哪些属性(外观尺寸等),哪些功能(用来做什么),描述完成后计算机就可以识别了。比如:洗衣机,它是一个品牌,在Java中可以将其看成是一个类别。属性:产品品牌,型号,产品重量,外观尺寸,颜色...功能:洗衣,烘干、定时....在java中定义类时需要用到class关键字// 创建类field;// 字段(属性)或者成员变量method;// 行为或者成员方法class为定义类的关键字,ClassName为类的名字,{}中为类的主体。

2301_80046330的博客 2381

麒麟银河操作系统V10部署ffmpeg(也能用于Linux系统)

部署ffmpeg用来处理视频的各种操作,如编码解码,格式转换,剪辑,处理实时视频流,音频流,加滤镜等

zhouwenxing666的博客 9041

java基础教程-包和接口

 第9章 包 和 接 口本章我们讲述Java最具有革新性的两个特点:包和接口。包(package)是类的容器,用来保存划分类名空间。例如,一个包允许你创建一个名为List的类,你可以把它保存在你自己的包中而不用考虑和其他地方的某个名为List的类相冲突。包以分层方式保存并被明确的引入新的类定义。在前面的章节你已经了解了怎样在类中定义数据接口的方法。通过运用关键字interface,Ja

liyang999的专栏 1389

Android息屏后台任务保活实战:从定时器失效到厂商白名单破解

本文深入探讨了Android应用在息屏后定时任务失效的根源,即系统为省电而触发的休眠机制。文章提供了从传统方案失效分析到实战破解的完整路径,核心在于引导用户将应用加入电池优化白名单并开启自启动权限,从而合法绕过限制。同时,结合WorkManager、AlarmManager等可靠定时方案,实现稳定的后台任务执行。

weixin_28475533的博客 423

用Obsidian搭建个人知识库:AI时代如何构建你的第二大脑

AI 时代,真正有价值的不只是获取知识,而是沉淀属于自己的知识体系。本文从 Obsidian 安装、目录设计、双向链接、插件推荐到 AI 联动、多端同步,手把手教你打造高效、可持续进化的个人知识库,让知识真正为你所用。🧠

XiaoqiangClub的博客 472

接口与包

接口 接口在语法上与类相似,是一些常量和抽象方法的集合。需要注意的是:接口中的成员变量都是常量,成员方法都是没有方法体的抽象方法。注意: 接口的特点: (1) 可以定义多继承; (2) 接口允许没有父接口; (3) 接口中的变量只能用pulbic、static和final来定义,方法只能被声明为public和abstract。 接口与类的区别: 接口不能用于实例化对象,没有构造方法。 接口中所有的方法必须是抽象方法。 接口不能包含成员变量,除了 static 和 final 变量。 接口不是被类继承了,而是

yan74561314的博客 473

51单片机+L298驱动步进电机+L297测速+LCD1602显示+按键调试+Proteus仿真

51单片机+L298驱动步进电机+L297测速+LCD1602显示+按键调试+Proteus仿真 *Proteus仿真 L298N是双H桥式驱动器。 L297是步进电机控制集成芯片(包括环形分配器),可产生四相驱动信号,应用于微处理机控制两相双极性和四相单极性步进电机。电动机可由半阶梯、正常和斩波驱动模式驱动,同时设于晶片内的PWM斩波线路容许以开关形式控制线路的电流。此器件只需要时钟、方向和模式输入信号。相位是由内部产生的,因此可减轻微处理机和程序设计的负担。 实例代码 /************

perseverance51博客 4585

Java接口和包(超详细)

前言 什么是接口呢,我们知道在Java中只允许单继承,为了实现多继承,Java就引入了接口这个概念 接口 接口在语法上与类相似,是一些常量和抽象方法的集合,

霖hero 4027

仿真学习系列(四十二):Sigrity仿真之走线阻抗和耦合检查

在高速电路设计中,走线的阻抗和信号线之间的耦合是影响信号完整性的重要因素。设计中可能会出现多种情况,导致阻抗变化或不匹配,例如线宽的变化、跨层分割等。传统的人工检查方法常常不够高效且易忽视细节。借助仿真软件,可以快速定位问题区域,并进行精确分析,从而有效避免或减少信号反射和串扰带来的影响。

案例文章,高速信号 425

用 DCL 编写 DEFINE ROLE:把 ABAP CDS 的访问控制做对、做实、做漂亮

摘要: 本文详细讲解如何在ABAP CDS中使用DCL(数据控制语言)实现行级授权,确保业务数据安全。核心要点包括: DCL原理:通过DEFINE ROLE将访问条件绑定到CDS实体,自动附加到查询条件(类似隐式WHERE),保障授权一致性。 关键语法: 必需注解@MappingRole: true声明映射角色。 ASPECT pfcg_auth关联PFCG权限对象,动态控制访问。 注解@AccessControl.authorizationCheck定义授权检查策略(如#CHECK启用强制控制)。 优先级

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

Java包与接口

   1.包:在编程中,把相关程序段组织起来经常是很有益的,Java中通过包来实现;  a.包服务于两个目的:首先它提供了把相关程序段组织成一个单元的机制,在包中定义的类必须通过它们的包名来访问,所以,包就提供了一种命名类的集合的途径;其次包还参与了Java的访问控制,包中定义的类可以声明为包所私有的,使包外的代码无法访问,这样包就为类提供了一种能够被封装的方式。  b.要想创建一个包,应该在Ja...

AWA124的博客 656

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JavaSE基础总结(笔试面试题)

目录 JavaSE基础 1.对象实例化 2.类的重载: 3.不定长参数,本质是一个数组形式,int...a 4.方法中使用全局变量 this 5.形参列表中的变量是局部变量 6.构造方法的作用: 7.父类和子类中,静态代码块、代码块、构造方法、普通方法执行顺序 8.修饰符修饰范围 9.子类只能继承父类非private的方法 10.instanceof 11.抽象方法不可以被...

zjf1665119803的博客 4万+

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

java 第三次课—对象、类、包和接口_补充

下面讲解几个重要的修饰符:1 static2 this3 super4 final5 abstract6 接口(interface )7 内部类(Inner Class )1 staticclass TStatic{   static int i;   void ex1()  {   i = 4;  }   static void ex2(int j)  {   i = j; }  pub

flyuniverse_shell的专栏 705

【JAVA】类和对象

万字详解JAVA中的类和对象,你确定不要看看?

做梦都想要三十万年薪~ 4138

对Java中工程、包、类、对象、方法的理解和调用

简要关系 一个工程相当于一个软件,由一些功能模块组成; 包是功能模块,集成了一些功能类; 类是功能,由一些方法组成。public类名需和其.java文件名相同,只有public类中的main方法是程序入口。调用其他类中的没有static修饰的方法时,先生成一个类实例对象,再使用类中的方法; 方法是类功能的具体实现过程。 包含形式 创建一个文件夹,作为工程 工程中创建文件夹作为包 包中放置可被调用的字节码.class类文件 调用 写好需要被调用的.java文件,编译后,把生成的.class

m0_62616221的博客 3351

Java类和对象之包的定义

包的基本概述 包的作用 包的定义 导包

Need not to know 3844

Java对象、类、接口

本文针对即将面试实习的同学,总结了Java对象、类、接口有关的常见面试题及其知识点,你也可以依照本文的问题自测,查缺补漏

清酒伴风的博客 1178

第三部分:类、接口和对象

java中类、抽象类、接口、对象和包的介绍。

inferno_lucerne的博客 1391

JAVA 包、类、方法、对象

JAVA 包、类、方法、对象 包是类的容器——Java中的包一般均包含相关的类,例如,所有关于交通工具的类都可以放到名为Transportation的包中。 类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。 方法的定义:方法是类或对象的行为特征的抽象。Java中的方法不能独立存在,所有的方...

weixin_43678689的博客 1882

类和对象、包等知识总结Java

定义类需要用到class关键字(大驼峰定义)for example:class Dog...初步了解一下:Dog为名字,{}内部为类的主体class Dog{float c;this.a=a;return a;...类中的变量称之为成员变量;要与局部变量做区分,局部变量需要手动初始化才能使用,成员变量如果没有初始化系统将使用默认初始化:初始化分为就地初始化(创建时直接赋值)、默认初始化,运用构造方法类中的方法称之为成员方法,类中还有构造方法等。

2302_80341024的博客 999

Java中的包、类、接口说明

Java中主要为抽象类和接口! 接口是通过interface 关键字修饰的,用来对一类具有共性对象的一种抽象,通过不同的类进行实现,来满足各自需求。

xdpcxq1029的博客 1033

一文搞清楚Java中的包、类、接口

/包名// 包作用域:");

JavaBuild的博客 1785

Java 类和对象详解(上 )

类与对象的学习是一个碎片化的过程,知识是很碎片的拼凑,所以今天小编整理了类和对象的详细知识,通过是什么,怎么做,慢慢走进类与对象,希望给你带来帮助!面向对象 和 我们过去的 面向过程有什么区别呢?可以这么说,把大象塞进冰箱里分为几步?1.打开冰箱2.把大象塞进去3.关上冰箱门至于我怎么把大象塞进冰箱里的,我并不关心,因为我不面向过程。同样的,在面向对象时,我们并不关心过程,只需要把过程交给"对象"去做。面向对象程序设计的主要步骤是:定义类->用类创建对象。别急,下面我们来深入讲讲。

2401_83779763的博客 2747

Java开发中一些常用的类,包,接口

在Java开发中,了解和熟悉一些常用的类、包和接口是非常重要的。这些类、包和接口涵盖了Java标准库和常用的第三方库,能够极大地提高开发效率和代码质量。下面是对一些常用的类、包和接口的详细介绍。

m0_70154470的博客 1884

Java的类和包的总结

认识类和对象的使用方法和构造方法 还有封装包的概念和使用 一些常见的包的引用

m0_66483195的博客 1777
上一篇: java第二次课-结构化程序设计_补充
下一篇: java 第三次课—对象、类、包和接口_补充
flyuniverse_shell
博客等级 码龄18年 119粉丝 121原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值