JAVSE_Day02面对对象(封装/继承/多态/抽象)

JavaSE、JavaEE 与 JavaWeb 的详解与区别 在Java开发的世界中,Java被广泛应用于各种领域,并发展出多个版本和技术分支。其中,JavaSE(Java Standard Edition)、JavaEE(Java Enterprise Edition)、JavaWeb是Java开发者常常接触的几个重要分支。它们各自适用于不同的应用场景,并在开发中发挥着不同的作用。本篇博客将详细介绍JavaSE、JavaEE、JavaWeb的概念、特点以及它们之间的区别。 阅读详情

类的定义:

类:具有相同特性(状态)和行为(功能)的对象的抽象就是类,因此,对象的抽象就是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。 类具有特性:对象的状态,用成员变量来描述。 类具有功能:对象的为用方法来描述.什么是类:类是对象的类型/模板。创建一个对象就是使用一个类作为构建该对象的基础不过在面向对象编程里,我们肯定是先有类 如果没有类,对象就没有实例化。

--------------------------------分割线-----------------------------------------------------


package com.anonymous.javase.day02;

public class Demo_Day02 {
	//类的定义
	/**
	 * [修饰符] class 类名{
	 * 		0~N个字段;
	 * 		0~N个方法;
	 * }
	 */
	String name = "杰克";
	int age = 23;
	
	public static void f1(){
		System.out.println("测试函数1");
	}
	//主程序,运行所有程序的入口
	public static void main(String[] args) {
		
	}
}


package com.anonymous.javase.day02;

//对象的创建和字段,方法的调用
public class Demo2_day02 {
	String name ;
	int age ;
	public void f1(){
		System.out.println("name"+name+"\n"+"age:"+age);
	}
	public static void main(String[] args) {
		//创建对象
		Demo2_day02 demo = new Demo2_day02();
		demo.name = "杰克";
		demo.age = 34;
		demo.f1();
	}
}

----------------------------


构造器的定义和重载:

package com.anonymous.javase.day02;

//构造器的重载和自定义
public class Demo3_day02 {
	String name;
	String age;
	static String gender ;
	//static关键字的使用
	/**
	 *static代表全局的修饰符
	 *调用static修饰的方法或者字段,直接类名调用即可
	 */
	/**
	 * 为何使用static修饰
	 * 比如这eat(表示吃的方法),
	 * 如果同时有5个对象,这样我每个对象都要去写一次eat方法
	 * 5个对象既然都要吃,就把他们设计成共享的数据,
	 * 让一个对象创建,其他对象共享就行了
	 */
	public static void eat(){
		System.out.println("gender"+gender+"\n"+"吃");
	}
	//无参构造器
	public Demo3_day02(){
		
	}
	
	//有参构造器
	public Demo3_day02(String name ,String age){
		
	}
	/**
	 * 构造的规则:
	 * 修饰符 构造器名([参数]...[参数]){
	 * }
	 */
	
	public static void main(String[] args) {
		//有参构造器对象
		Demo3_day02 demo1 = new Demo3_day02("杰克" ,"34");
		//无参构造器对象
		Demo3_day02 demo2 = new Demo3_day02();
		
		//使用static修饰的方法(字段也是同样的道理)
		Demo3_day02.eat();
		Demo3_day02.gender="男";
	}
	/**
	 * 默认情况下:我们在没有设置任何构造器的情况下,
	 * JVM会自动帮助我们生成一个无参的构造器,(可以使用反编译工具查看)
	 * 如果我们设置一个有参的构造器,
	 * 我们必须自己手动的去设置一个无参的构造器
	 * 否者使用的时候会报错
	 */
}



变量的作用域:

package com.anonymous.javase.day02;

public class Demo4_day02 {
	//成员变量(也称之为全局变量)
	//使用static修饰
	static String name;
	//不使用static修饰
	String age;
	public static void main(String[] args) {
		//局部变量
		int source  = 89;
		String gender = "男";
		for (int i = 0; i < 90; i++) {
			System.out.println(i);
		}
		//	这里的i就访问不到了..限制了作用域只能在for循环中使用
		//System.out.println(i);
		
	}
}

使用成员变量和局部变量的问题?!

变量生命周期:


封装:

package com.anonymous.javase.day02;

//封装
class Student{
	String name ;
	String age;
	
	private String gender;
	private String height;
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public String getHeight() {
		return height;
	}
	public void setHeight(String height) {
		this.height = height;
	}
	
}

public class Demo5_day02 {
	public static void main(String[] args) {
		Student student = new Student();
		student.name = "ROSE";
		student.age = "34";
		student.name = "KAC";
		student.age = "34";
		/**
		 * 这样设计不合理:
		 * 不能让调用者直接解除数据,从而篡改数据
		 */
		
		//解决
		/**
		 * 使用get和set方法进行设置值和获取值.
		 * 不能让用户直接对数据进行修改(这样不能体现面对对象的思想),
		 */
		student.setGender("男");
		student.setHeight("189");
		String gender = student.getGender();
		String height = student.getHeight();
		System.out.println(gender+height);
		
		
	}
}

继承:


package com.anonymous.javase.day02;
//子类
class Son extends Father{
	public void f1(){
		super.f1();
		System.out.println("456");
	}
}

//父类
class Father{
	public void f1(){
		System.out.println("123");
	}
}


//测试类
public class Demo6_day02 {
	public static void main(String[] args) {
	Father son = new Son();
	son.f1();
	}
}

多态:

package com.anonymous.javase.day02;
//父类
class Animal{
	public void eat(){

	}
}
//子类
class Cat extends Animal{
	public void eat(){
		System.out.println("(猫)喂养中...");
	}
}
//子类
class Dog extends Animal{
	public void eat(){
		System.out.println("(狗)喂养中...");
	}
}

//喂养者
class People{
	//喂养狗
	public void feed(Dog d){
		d.eat();
	}
	//喂养猫
	public void feed(Cat c){
		c.eat();
	}
}

/**
 * 上面没有使用多态思想
 */


/**
 * 使用多态思想
 */

class People2{
	//喂养狗
	public void feed(Animal a){
		a.eat();
	}
}
public class Demo7_day02 {
	public static void main(String[] args) {
		People people = new People();
		
		people.feed(new Dog());
		people.feed(new Cat());
	}
}

抽象:


package com.anonymous.javase.day02;
abstract class TestTime{
	//抽象类中可存在方法体
	//模板方法(不允许子类覆盖加上final)
	final public void getTime(){
		//开始时间
		long begin = System.currentTimeMillis();
		this.doWork();
		//结束时间
		System.out.println(System.currentTimeMillis()-begin);
		
	}
	
	//抽象方法
	abstract public void doWork(); 
}

class Sub1 extends TestTime{

	@Override
	public void doWork() {
		for (int i = 0; i < 10000; i++) {
			i+=1;
		}
	}
	
}

class Sub2 extends TestTime{

	@Override
	public void doWork() {
		String str = "";
		for (int i = 0; i <100000; i++) {
			str+=i;
		}
	}
	
}

public class Demo8_day02 {
	public static void main(String[] args) {
		new Sub1().getTime();//0
		new Sub2().getTime();//13144
	}
}

JavSE5(中文版)API JavSE5(中文版)API + JavSE5(中文版)API +JavSE5(中文版)API 立即下载

相关推荐

JAV LED32HD320 LAD.MV59S.B MT3151A04-1-XC-9 7J.rar

JAV LED32HD320 LAD.MV59S.B MT3151A04-1-XC-9 7J JAV LED32HD320 LAD.MV59S.B MT3151A04-1-XC-9 7J

javse(2023/11/17)

1、单例模式(static实践) 2、final关键字 3、抽象类 4、模板设计模式(实践抽象类) 5、接口 6、内部类

longbow_nice的博客 610

javc ACCP 6.0上课笔记

上课的笔记 、蛮实用的 北大青鸟ACCP 6.0 java 理解逻辑运算

JavaSE —— 000基础版

本篇文章主要面向于0基础学习java的读者。里面详细介绍了java语言基础、运算符、控制语句、方法、面向对象编程、关键字、多态等基础知识。十分适合初学者。

xgjdl1314的博客 1万+

点云直线检测-3DLineDetection复现

点云直线分割-Fast 3D line detection

阁楼 8156

ENVI 5.6保姆级教程:高分七号DLC影像从打开到融合的完整流程(附避坑指南)

本文详细介绍了ENVI 5.6处理高分七号DLC影像的完整流程,包括环境准备、数据解压、正射校正、图像融合等关键步骤。特别针对国产卫星数据处理的独特挑战,提供了实用的避坑指南和优化技巧,帮助用户高效完成光学影像的预处理和质量提升。

weixin_33269743的博客 382

Java中JavaSE与JavaEE的区别

JavaSE和JavaEE都是Java技术的重要组成部分,但它们在功能、用途和设计理念上都有所不同。JavaSE提供了基础的编程功能和API,适用于开发桌面和简单服务器端应用程序;而JavaEE则提供了企业级功能和API,适用于开发大型、分布式的企业级应用。在实际应用中,应根据项目需求选择合适的Java平台版本,并结合成熟的开发框架和工具来提高开发效率和代码质量。版权声明:本博客内容为原创,转载请保留原文链接及作者信息。参考文章JavaSE与JavaEE的区别JAVAEE和项目开发——web实战案例。

ning的博客 3136

银行卡密码键盘 SM4 ECB模式+ANSI X9.8 格式标准(带主账号信息)PIN 加解密示例

文章目录1.软加解密示例2.知识点①ANSI X9.8 格式标准②主密钥,工作密钥加解密基本概念:加密种类:3.密码键盘操作4.工具 1.软加解密示例 ————————————————————————————————————————————------ 已知数据: 银行测试主密钥TMK: 1234567890ABCDEFABCDEF0987654321 通过签到接口得到: 工作密钥密文KeyVal...

老孟嘚吧嘚 6651

JavaEE vs JavaSE:Java开发的两大世界深度解析

JavaEE vs JavaSE:Java开发的两大世界深度解析

weixin_37840904的博客 1546

C++跨平台Word文档处理库DuckX实战指南:从原理到项目集成

在C++开发中,处理Office文档,尤其是Word文件,常因缺乏原生易用的库而面临挑战。Office Open XML(OOXML)作为.docx文件的基础标准,其本质是包含XML文件的ZIP压缩包。理解这一原理,开发者便能通过解析和操作XML来实现文档的读写。DuckX库正是基于此,为C++提供了轻量级的解决方案。它封装了底层的ZIP处理和XML解析,提供了简洁的面向对象API,其技术价值在于实现了跨平台、无外部依赖的Word文档自动化生成与处理。这尤其适用于服务器端、嵌入式环境或需要脱离Office软

weixin_33508411的博客 387

【四足机器人项目实战】MIT无刷电机FOC硬件电路设计

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、MCU最小系统--STM32F446RE1.usb串口通讯连接口+程序下载连接口2.MCU电源滤波二、磁编码器角度传感器三、三相驱动桥四、CAN通讯收发器电路五、温度ADC检测六、电源滤波及分压电路1、DC电源输入端2、DC电源滤波电路3、DC电源分压电路4、三相绕线接线端总结参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对

qq_35635374的博客 7061

javse接口的应用:工厂模式

package zhang.javase.TestFactory; /** 工厂方法的设计模式 @作者:小章鱼 *通过接口可以实现不相关类之间的相同行为,而不需要考虑这些类的层次关系 *通过接口可以指明多个类与要实现的方法,一般可以用定义的对象扩张功能 *接口主要来定义规范,解除耦合关系 */ public class Testfactory { public static void main(...

qq_43257103的博客 1593

SpringCloud详细教程(下)

SpringCloud详细教程,springcloud完全教程。Springcloud微服务教程(上)的姊妹篇:介绍了其它SpringCloud组件。

鸟哥哥的专栏 4万+

Java SE,Java EE:到底是什么

JavaSE是Java的标准版,提供基础语法、类库和运行环境,是Java开发的核心基础。JavaEE则是基于SE的企业扩展版,增加了Servlet、JPA等企业级规范,适用于开发大型Web应用和分布式系统。两者关系为:SE是必学基础,EE是进阶选择,开发企业应用需先掌握SE再学习EE的核心技术。学习路径建议从SE开始,逐步过渡到EE相关框架。

m0_73884648的博客 2162

【纯干货分享】常用高速接口眼图模板合集

文章汇集了常见的高速接口的信号眼图测试模板技术要求,比如,LPDDR5/4、PCIe 5.0/4.0、USB、MIPI等等,方便工程师快速进行查询和使用。

一只豌豆象的博客 3116

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java - JavaSE - 概述

概述 常用 DOS 命令 功能 如何实现 进入不同的磁盘 D: 查看当前目录所有文件和文件夹 dir 创建文件夹 md test 进入文件夹 cd test 退回到上一级目录 cd… 删除文件 del test.txt 删除多个同类型文件 del *.txt 删除空文件夹 rd test 删除非空文件夹,使用下列命令后提示选择 Y del test ...

ChenBin113 535

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java项目的打包

1 javse打包 : exort 运行命令 java -jar 包名 2javaee打包 方法一: export war file 然后移动到Tomcat    webapps 下 启动tomcat http://localhost端口/目录名/jsp名  方法二: 或者用eclipse添加到 service 中 启动tomcat 然后找到eclipse 工作空间

土豆牛肉拌面 862

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

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JavaSE基础语法(成为Java大神的必经之路)

Java 对各种变量、方法和类等要素命名时使用的字符序列称为标识符。

2301_78341216的博客 2311

java学习流程

Java SE 是的缩写,中文译为「Java 标准版」。你可以把它理解为 Java 技术体系的基础核心它是整个 Java 生态的基石,包含了 Java 最核心的语法、类库和运行环境。主要用于开发桌面应用(如 Swing 程序)、控制台程序,也是学习 Java EE(企业版)、Java ME(微型版)的前提。我们常说的「学 Java 基础」,本质上就是学 Java SE 的核心内容。控制台程序(比如学生管理系统):直接在本地运行,只有你自己能操作;

2402_85897470的博客 448

Object类的方法

Object类一共有13个方法 1、clone方法:保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是Java里除了8种基本类型传参数是值传递,其他的对象传参数都是引用传递,我们有时候不希望在方法里将参数改变,这时就需要在类中书写clone方法。 2、...

192

【JAVASE基础】字节输入流

4.字节输入流 java.io.InputStream是所有字节输入流的超类:可以读取任何类型文件 ●读取字节的方法read 。int read)读取单个字节,读取到流的末尾返回-1 。int read(byteD b)读取字节数组,读取到流的末尾返回-1 43.1 FileInputStream ●构造方法: FileInputStream(File file) ●构造方法: FileInputStream(String file) 。创建字节输入流对象绑定参数就是要读取的数据源文件 package co

yu_fu_a_bu的博客 375

JavaSE 基础知识

本文将对Java的三大特性:封装、继承、多态进行简单的说明,涉及abstract、final、static、implements、extends……等关键字,主要对父类和子类的继承、方法的重载和重写进行详细的叙述。

weixin_53850894的博客 1791

HDOJ-1702 栈和队列问题[或模拟]

ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1697    Accepted Submission(s): 906 Problem Description ACboy wa...

weixin_34226182的博客 551

Java5-Java8新特性,这回全了

Java5:泛型 Generics 引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处。Parameterized Type作为参数和返回值,Generic是vararg、annotation、enumeration、collection的基石。

石竹的专栏 3360

Java爬取豆瓣Top250简单实现

首先引入依赖: <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.12.1</version> </dependency> import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import

吹灭读书灯 一身都是月的博客 4861
上一篇: JAVASE复习day01-面向过程部分(只有重点)
下一篇: 设计方法-----单利模式(懒汉式和饿汉式)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值