Day07__面向对象

news/2024/5/14 13:53:30/文章来源:https://www.cnblogs.com/lyc2001/p/16677922.html

面向对象

什么是面向对象

image-20220906215048599

image-20220906220007196

回顾方法的定义

package objectOriented;import java.io.IOException;//回顾方法的定义
public class Demo01 {public static void main(String[] args) {}public static String sayHello(){return "Hello,World!";}public int max(int a,int b){return a>b ? a:b;}public void readFile(String file) throws IOException{}
}

回顾方法的调用

package objectOriented;public class Student {//静态方法public static void say(){System.out.println("学生说话");}//非静态方法public void pillowTalk(){System.out.println("学生说悄悄话");}
}
package objectOriented;//回顾方法的调用
public class Demo02 {public static void main(String[] args) {Student.say();//静态方法调用Student student = new Student();student.pillowTalk();//非静态方法调用}//和类一起加载的
//    public static void a(){
//        b();
//    }
//类实列话之后才存在
//    public void b(){
//
//    }//区分实参和形参public static int add(int a,int b){return a+b;}
}
package objectOriented;//值传递
public class Demo03 {public static void main(String[] args) {int a = 1;System.out.println(a);change(a);System.out.println(a);}public static int change(int a){a=10;return a;}
}
package objectOriented;//引用传递
public class Demo04 {public static void main(String[] args) {Person person = new Person();System.out.println(person.name);change(person);System.out.println(person.name);}public static void change(Person person){person.name = "张三";}
}class Person{String name;
}

类与对象的关系

image-20220910144311777

package objectOriented;public class Student {String name;int age;//方法//静态方法public static void say(){System.out.println("学生说话");}//非静态方法public void pillowTalk(){System.out.println("学生说悄悄话");}public void study(){System.out.println(this.name + "在学习");}
}
package objectOriented;public class Demo05 {public static void main(String[] args) {//类实例化//类实例化后返回一个自己的对象Student student = new Student();student.study();}
}

构造器详解

package objectOriented;public class Person {String name;//无参构造器public Person(){}//alt+insert//构造器(有参)public Person(String name){this.name=name;}
}

image-20220910150322639

创建对象内存分析

image-20220910151253995

简单小结类与对象

image-20220910151741356

image-20220910151800579

封装详解

image-20220910151837771

image-20220910152847895

package objectOriented2;public class Student {//属性私有private String name;private int id;private char sex;//提供一些public的get,set的方法//alt+insertpublic String getName(){return this.name;}public int getId(){return this.id;}public char getSex(){return this.sex;}public void setName(String name){this.name = name;}public void setId(int id){this.id = id;}public void setSex(char sex) {this.sex = sex;}
}

什么是继承

image-20220910153131201

package objectOriented2;public class Person {//public//protected//default//privatepublic void say(){System.out.println("人在说话");}
}
package objectOriented2;//子类继承了父类,就会有父类的全部方法
public class Student extends Person{//属性私有private String name;private int id;private char sex;//提供一些public的get,set的方法//alt+insertpublic String getName(){return this.name;}public int getId(){return this.id;}public char getSex(){return this.sex;}public void setName(String name){this.name = name;}public void setId(int id){this.id = id;}public void setSex(char sex) {this.sex = sex;}
}
package objectOriented2;public class Demo01 {public static void main(String[] args) {Student student = new Student();student.say();}
}

Super详解

image-20220910155418514

package objectOriented2;public class Person {//public//protected//default//privatepublic String name = "Person";}
package objectOriented2;//子类继承了父类,就会有父类的全部方法
public class Student extends Person{public String name = "Student";public Student(){super();//调用父类的无参构造}public void print1(){System.out.println(this.name);}public void print2(){System.out.println(this.name);System.out.println(super.name);}}
package objectOriented2;public class Demo01 {public static void main(String[] args) {Student student = new Student();student.print1();student.print2();}
}

方法重写

image-20220910160709908

package objectOriented2;public class B {public static void test1(){System.out.println("B->test()");}public void test2(){System.out.println("B->test()");}
}
package objectOriented2;public class A extends B {public static void test1(){System.out.println("A->test()");}public void test2(){System.out.println("A->test()");}
}
package objectOriented2;public class Demo02 {public static void main(String[] args) {//静态方法: 方法的调用只和左边定义的数据类型有关//非静态:重写A a = new A();B b = new A();a.test1();b.test1();a.test2();b.test2();}}

多态

image-20220910160904887

image-20220910162031821

package objectOriented3;public class Person {public void run(){System.out.println("run");}
}
package objectOriented3;public class Student extends Person{public void run(){System.out.println("son");}public void eat(){System.out.println("eat");}
}
package objectOriented3;public class Demo01 {public static void main(String[] args) {//能调用的方法都是自己的或继承父类的Student s1 = new Student();//可以指向子类,但不能调用子类独有的方法Person s2 = new Student();Object s3 = new Student();s1.run();s2.run();s1.eat();//s2.eat();}
}

instanceof和类型转换

package objectOriented3;public class Person extends Object{}
package objectOriented3;public class Student extends Person{public void go(){System.out.println("go");}
}
package objectOriented3;public class Teacher extends Person{
}
package objectOriented3;public class Demo01 {public static void main(String[] args) {Object object = new Student();System.out.println(object instanceof Student);System.out.println(object instanceof Person);System.out.println(object instanceof Object);System.out.println(object instanceof Teacher);System.out.println(object instanceof String);Person student1  = new Student();//System.out.println(person instanceof String);//编译报错((Student)student1).go();//父类转化为子类Person student2  = new Student();Person person = student2;//子类转化为父类会丢失一些方法或属性}
}

static关键字详解

package objectOriented3.Demo02;import java.sql.SQLOutput;//如果被final修饰则不能被继承
public class Person {//2:赋初始值{System.out.println("匿名代码块");}//1:只执行一次static{System.out.println("静态代码块");}//3public Person(){System.out.println("构造方法");}public static void main(String[] args) {Person person = new Person();}
}
package objectOriented3.Demo02;public class Student {private static int age;//静态变量,多线程,所有对象共享private double score;//非静态变量public void run(){}public static void go(){}public static void test(){//run(); 非静态方法,不能在静态方法里被调用go();}
}
package objectOriented3.Demo02;//静态导入包
import static java.lang.Math.random;
public class Test {public static void main(String[] args) {System.out.println(random());}
}

抽象类

image-20220910164924321

image-20220910165723603

package objectOriented3.Demo03;//abstrac 抽象类
//抽象类的所有方法,继承了它的子类都必须实现它的方法,除非子类也是抽象类
//类只有单继承,但是接口可以多继承
public abstract class Action {//抽象方法,只有名字,没有方法的实现public abstract void doSomething();
}
package objectOriented3.Demo03;//抽象类的所有方法,继承了它的子类都必须实现它的方法
public class A extends Action{@Overridepublic void doSomething() {}
}

接口的定义和实现

image-20220910165923396

image-20220910171139526

package objectOriented3.Demo04;public interface UserService {//接口中的所有定义方法都是抽象的公共的  public abstract//接口中的所有定义属性都是常量 public static finalvoid add(String name);void delete(String name);void update(String name);void query(String name);
}
package objectOriented3.Demo04;public interface TimeService {}
package objectOriented3.Demo04;//利用接口可以”多继承“
public class UserServiceImpl implements UserService,TimeService{@Overridepublic void add(String name) {}@Overridepublic void delete(String name) {}@Overridepublic void update(String name) {}@Overridepublic void query(String name) {}
}

内部类

image-20220910171247123

package objectOriented3.Demo05;public class Outer {private int id = 1;public void out(){System.out.println("这是外部类的方法");}class Inner1{public void in(){System.out.println("这是内部类的方法");}public void getId(){System.out.println(id);}}//    class static Inner2{
//        public void in(){
//            System.out.println("这是内部类的方法");
//        }
//        public void getId(){
//            System.out.println(id);
//        }
//    }
}
package objectOriented3.Demo05;public class Application {public static void main(String[] args) {Outer outer = new Outer();Outer.Inner1 inner = outer.new Inner1();inner.getId();}}//一个java类里可以有多个class,但是只能有一个poublic class
class A{}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_6212.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deno 会取代NodeJS吗?

目标:了解Deno的学习价值和前景。 从下面几个维度进行分析 成熟度 Node已经在大量商业应用中,Deno只是还在商业试验阶段 生态 Node已经有丰富的生态,包含各种框架和库,并且都已经广泛应用Deno的框架和库基本上都是刚刚起步 学习成本 如果你已经了解Node,Deno也还是需要不…

基于蜜蜂算法求解电力系统经济调度(Matlab代码实现)

目录 1 蜜蜂优化算法 1.1 蜂群觅食机制 1.2 蜜蜂算法 1.3 流程 2 经济调度 3 运行结果 4 Matlab代码及文章 5 参考文献 6 写在最后 1 蜜蜂优化算法 蜜蜂算法( Bees Algorithm,BA) 由英国学者 AfshinGhanbarzadeh 和他的研究小组于 2005 年提出。该算法是一…

element table 列头和行高调整

1、行高调整<el-table :row-style="{height:0}"></el-table>2、列头高度调整<el-table :header-cell-style="{padding:0}" :row-style="{height:0}"></el-table>

都这麽大了还不了解防火墙?

目录 一、思考 二、实验 三、过程 1、实验拓扑 2、cloud-IO配置 3、防火墙配置 3.1 登录防火墙 4、区域划分 方法一 方法二 4.1 内网划分 4.2 各区域网关 4.3 区域配置 5、防火墙策略 5.1 允许-回程路由&#xff08;内网~外网&#xff09; 5.2 禁止-新建策略…

AI作画飞入平民百姓家——stable diffusion初体验

1. 前言 stable_diffusion来了&#xff0c;这个号称是最强的民用文本生成图片的模型它来了&#xff0c;相比较DAEE等大模型&#xff0c;它能够让我们消费级的显卡也能够实现文本到图像的生成。下面&#xff0c;我们也来试一下。 2. 准备过程 该服务器上必须要有的基础工具an…

[基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式]

基于瑞芯微RV1126调试RTL8818FU WIFI模组支持STA和AP模式内核menuconfig配置内核dts配置文件系统配置和更改驱动编译wifi工具编译libnl库编译openssl编译wpa_supplicant编译hostapd编译开机运行脚本测试WIFI—STA模式运行脚本测试WIFI-AP模式内核menuconfig配置 CONFIG_NETFIL…

高光谱图像分类简述+《Deep Learning for Hyperspectral Image Classification: An Overview》综述论文笔记

论文题目《Deep Learning for Hyperspectral Image Classification: An Overview》 论文作者:Shutao Li, Weiwei Song, Leyuan Fang,Yushi Chen, Pedram Ghamisi,Jn Atli Benediktsson 论文发表年份:2019 一、高光谱简述高光谱成像是一项重要的遥感技术,它采集了从…

SQL server 2008 安装教程

SQL server 2008 安装教程 1. 安装 SQL server 2008 的主要步骤如下 1.1 点击 setup.exe1.2 选中 “安装”&#xff0c;并点击右边的 “全新 SQL sever 独立或向现有安装添加功能1.3 重启电脑&#xff0c;再找到安装程序 “setup.exe” 重复上面的步骤1.4 输入产品秘钥 “JD8Y…

The Art of Prompting: Event Detection based on Type Specific Prompts

Motivation之前的研究表明prompt可以提高模型在事件检测方面的性能,包括使用特定structure 使用每种事件类型特定的query 原型 trigger这些尝试启发对不同prompt效果的探究Settings 作者在3种setting下做了实验:Supervised event detection Few-shot Event detection两个数据…

对课上相关问题的研究和解答

问题一:从测试中看不足 1、JAVA的基本运行单位是类 2、类中由类变量和类方法共同组成 3、变量的类型相互之间存在可以转换的关系,具体来说,可以分为以下几种情况: 1、(byte、short、char)-int-long-float-double,从低级到高级的排序,数据类型可以直接由低级向高级转换 举…

SpringCloud微服务架构

什么是微服务 微服务架构的基础是将的那个应用程序开发为一组小型独立服务&#xff0c;这些独立服务在自己的进程中运行&#xff0c;独立开发和部署。 SpringCloud Alibaba微服务&#xff1a; Spring Cloud Alibaba 是Spring Cloud的一个子项目&#xff0c;致力于提供微服务…

9--RNN

有隐藏状态的循环神经网络 假设在时间步t有小批量输入&#xff0c;即对于n个序列样本的小批量&#xff0c;的每一行对应于来自该序列的时间步t处的一个样本&#xff0c;用表示时间步t的隐藏变量。与MLP不同的是&#xff0c; 我们在这里保存了前一个时间步的隐藏变量&#xff0c…

《Mycat分布式数据库架构》之数据切分实战

文章目录1、引言2、前期准备2.1 系统环境2.2 数据库集群3 注意事项3.1 分片原则3.2 如何选择分片键4 数据切分实战4.1 配置访问用户及权限4.2 配置逻辑库及逻辑表4.3 配置分片规则4.3.1 简单取模分片4.3.2 哈希取模分片4.3.3 枚举分片4.3.4 字符串范围取模分片前文回顾&#xf…

Selenium操作已经打开的Chrome(只怪自己尝试的太迟)

&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d;&#x1f51d; &#x1f970; 博客首页&#xff1a;…

抖音视频

刻度尺读取方法0n:/ 复制打开抖音,看看【天子骄龙的作品】初中物理-刻度尺读数 ηηQ2VtW0nGyv8▽▽ 秒表读取方法 8.76 aNW:/ 复制打开抖音,看看【天子骄龙的作品】初中物理-秒表读数# 专业的事交给专业的人 初中物理... https://v.douyin.com/6RTySK2/

微信支付v3

文章目录前言1. 微信支付产品介绍2 接入指引2.1 获取商户号2.2 获取appid2.3 获取密钥和证书3 支付安全3.1 对称加密和非对称加密3.2 身份认证3.3 数字证书3.4 https中的数字证书3.5 微信支付中的证书密钥和签名4 基础支付apiv34.1 基础支付APly3-引入支付参数4.2 基础支付APly…

frame标签使用

当页面采用框架集的时候,如果点击,某个部分想在当前页面跳转到一个全新的无框架集的页面,可以在超链接中指定 target属性,如果指定为_top,则是整个页面,也可以指定某个frame 。 默认的几种值有: _self:当前frame(或者当前部分) _blank:打开新的一个窗口 _parent:当…

upload-labs靶场通关指南(9-11关)

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是upload-labs靶场通关指南&#xff08;9-10关&#xff09; 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; …

JavaScript每日一题_立即执行函数中函数名和变量同名,输出的是什么

立即执行函数中函数名和变量同名,输出的是什么 代码如下 var a 1;(function a() {a 2console.log(a)})();首先,不是输出2,也不是输出1 运行代码 输出的是函数a未定义 一句一句代码解读 实现 var a 1;会在window对象上挂载一个属性a,并赋值为1 然后是 (function a() {a …

.NET操作Excel高效低内存的开源框架 - MiniExcel

.Net平台上对Excel进行操作主要有两种方式。第一种,把Excel文件看成一个数据库,通过OleDb的方式进行读取与操作;第二种,调用Excel的COM组件。两种方式各有特点。 今天给大家介绍第三种方式:插件方式,目前主流框架大多需要将数据全载入到内存方便操作,但这会导致内存消耗…