java日记day11
回顾:
java core
java基本语法
- 变量,数据类型,运算,分支结构,循环,数组
面对对象
java高级API
网络编程
database,jdbc
javaweb
maven ssm
springboot springcloud/dubbo
面向对象
对象:一个具体的事物就是一个对象
1. 类
当我们说你壮的像头熊,跑的快的像一个豹子,脑子像电脑一样快时
这里的电脑,表示的不是具体的一个电脑,而是电脑这类事物,所有的电脑
这里的熊,表示的不是具体的一个熊,而是熊类,所有的熊都壮
说的豹子,表示不是一个具体的豹子,而是豹类,所有的豹子都快
我们如何在程序中表示所有的豹子(豹类),所有的熊(熊类)
只需定义一个类(class)即可
电脑类:
public class Computer {}
熊类:
/** 表示熊*/
public class Bear {}
豹类:
/** 表示熊*/
public class Leopard {}
1.1 属性
电脑的属性,表示电脑拥有的特性,特点,可以从这些方面描述一台电脑
如:电脑有品牌,价格,内存,cup 这些属性
人有身高,体重,性别,出生日期 这些属性
在程序中,我们可以通过定义成员变量的方式表示该类事物拥有这些特性
package com.qf;/** 表示所有电脑* */
public class Computer {/** 所有的电脑都共有的属性(特性,特点)* * 通过直接在类中定义变量,方法之外的* - 属性,实例变量,成员变量,全局变量* - 都有默认值*///品牌String brand;//价格double price;//cpuString cpu;//内存String memory;}
1.2 操作,方法
熊能够干什么 吃饭 睡觉
电脑能够干什么 玩游戏,看电影
在程序中,我们可以通过定义方法的形式,定义该类事物可以进行这些操作
package com.qf;/** 表示所有电脑* */
public class Computer {/** 所有的电脑都共有的属性(特性,特点)* * 通过直接在类中定义变量,方法之外的* - 属性,实例变量,成员变量,全局变量* - 都有默认值*///品牌String brand;//价格double price;//cpuString cpu;//内存String memory;//爆笑虫子/** 所有电脑都能干的事情(操作)* * 使用方法定义能够干的事情* - 没有static修饰* - 这种方法叫做实例方法* */public void palyGames() {System.out.println("打游戏");}public void seeMovie() {System.out.println("看电影");}}
package com.qf;public class Humanity {/** 身高,体重,性别,出生日期* */int height; //单位厘米int weight;char gender;String birthday;/** 吃饭 睡觉* */public void eat() {System.out.println("人类-吃饭");}public void sleep() {System.out.println("睡觉---");}public void printSelf() {System.out.println("height:"+height+", weight="+weight);}
}
package com.qf;public class Phone {/** 品牌,型号,价格,内存*/String brand;String model;double price;String ram;/** 打电话 发微信 */public void call() {System.out.println("打电话--");}public void sendMsg() {System.out.println("发信息==");}}
2. 对象
对象就是一类事物的一个实例,换句话说就是一个具体的该类事物。
每一个人就是人类的一个对象
你的手机就是手机(类)的一个对象
2.1 如何创建对象
类名 变量名 = new 类名();
这里的变量表示该类事物一个具体的实例
Computer com = new Computer();Humanity hum = new Humanity();AircraftCarrier af = new AircraftCarrier();
2.2 为属性赋值
可以通过 对象名.属性名 = 值; 为属性赋值
Computer com = new Computer();
com.brand = "acer";
com.price = 4000.0;
com.cpu = "i5";
com.memory = "8G";AircraftCarrier af = new AircraftCarrier();
af.name = "辽宁舰";
af.level = "库兹涅佐夫级";
af.displacement = 57000;
af.serverTime = "2012年9月25日";Humanity hum = new Humanity();
hum.height = 170;
hum.weight = 130;
hum.gender = '男';
hum.birthday = "2000-10-10";
2.3 调用方法
可以通过 对象名.方法名(); 调用方法
Computer com = new Computer();
com.palyGames();
com.seeMovie();
com.printSelf();
package com.qf;public class Test01 {public static void main(String[] args) {/** 表示眼前的这台电脑* * 这台电脑就是一个对象* 在程序员眼里,万物皆对象* * new Computer(); 表示一个电脑的对象* 它就表示现实中一台具体的电脑*///创建一个电脑对象Computer com = new Computer();/** 为属性赋值,表述这台电脑* * 变量名.属性名 = 值;*/com.brand = "acer";com.price = 4000.0; com.cpu = "i5"; com.memory = "8G";/** 进行操作* 变量名.方法名();*/com.palyGames();com.seeMovie();com.printSelf();/** 表示身高 : 170体重: 130性别: 男出生日期: 2000-10-10* 的一个人*/Humanity hum = new Humanity();hum.height = 170;hum.weight = 130;hum.gender = '男';hum.birthday = "2000-10-10";/** 在程序中辽宁号* 1. 创建一个类,表示所有的航空母舰* 2. 定义航空母舰共有的特性,特点(属性)* 3. new一个具体的航空母舰* 4. 通过为属性赋值,来表示具体的对象*/AircraftCarrier af = new AircraftCarrier();af.name = "辽宁舰";af.level = "库兹涅佐夫级";af.displacement = 57000;af.serverTime = "2012年9月25日";}public void test() {int a = 9;int b = 0;if(a > 19) {b=8;}System.out.println(b);}}
3. 类命名规则
- 首字母大写
- 其他和变量名规则一样
public class AircraftCarrier {}
public class Bear {}
public class Bread {}
public class Computer {}
public class Plane {}
4. 实例变量和局部变量
4.2 定义的位置
- 实例变量定义在类里面,方法体之外
- 局部变量定义方法中
4.3 默认值
- 实例变量 有默认值
- 基本类型
- 整数 0
- 小数 0.0
- 布尔 false
- 字符 0 = ‘ ’
- 引用类型 null
- 基本类型
- 局部变量 必须实例化才能使用
4.4 使用范围
- 实例变量 整个类
- 局部变量 离的最近的大括号
public void test() {int a = 9;if(a > 19) {int b=8;}System.out.println(b); //报错}
5. 实例方法
语法:
public void/返回数据类型 方法名(参数列表) {//方法体
}
使用:
对象.方法名(值);
- 方法一定要使用对象类调用
方法名规则:
- 和变量命名规则一模一样
6. 方法的重载
6.1 方法的签名(唯一性)
在一个类中,不能存在两个方法,方法名相同且参数列表相同
- 参数列表相同
- 参数的个数相同
- 参数按照顺序,数据类型也一致
- 与参数名无关
6.2 重载
在一个类中,方法名相同,但参数列表不同,叫做方法的重载
- 代码更加规范,使用方便
- 通过参数的值,决定调用的方法
package com.qf;public class MathUtil {/** 1. 方法的签名 方法的唯一性* 1.1 方法名* 1.2 参数列表* 1.2.1 参数的个数* 1.2.2按照顺序的参数数据类型* 2. 方法的重载* 2.1 在一个类中,方法名相同,参数列表不同,这就是重载* 2.2 代码更加规范,使用方便* 2.3 通过参数的值,决定调用的方法*/public int add(int a, int b) {System.out.println("public int add(int a, int b)");return a+b;}public double add(int a, double c) {System.out.println("public double add(int a, double c)");return a+c;}public double add(double a, int b) {System.out.println("public double add(double a, int b)");return a+b;}public double add(double a, double b) {System.out.println("public double add(double a, double b)");return a+b;}/** 两个数相乘*/}
package com.qf;public class Test01 {public static void main(String[] args) {/** 会根据参数值的不同,调用响应的方法*/MathUtil util = new MathUtil();double r1 = util.add(1.0, 2.0);double r2 = util.add(1, 2);double r3 = util.add(1, 2.0);double r4 = util.add(1.0, 2);}
}
java日记day11相关推荐
- Java基础day11
Java基础day11 Java基础day11-多态&抽象类&接口 1 多态 1.1多态的概述 1.2多态中的成员访问特点 1.3多态的好处和弊端 1.4多态中的转型 1.5多态的案例 ...
- Java学习日记Day11(面向对象day05)
面向对象第5天: 回顾: 向上造型:--------------代码复用 超类型的引用指向派生类的对象 能点出来什么,看引用的类型------------------这是规定 方法的重写(overri ...
- 【Java】学习日记 Day11
作者|Rickyの水果摊 时间|2022年7月13日
- Java日记April
April 2020-04-01 今天是2020年4月11日,算是一个回溯,因为四月一号(其实是3月29,但是凑一下整不好吗),是开始学JAVA的日子,后来打算写一下日记,与其说是用来分享,不如说 ...
- 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet
一.集合的特点 二.继承结构图 三.List集合 1.特点 2.ArrayList类 3.LinkedList类 4.两者的对比 5.集合的遍历 四.Set集合 1.特 ...
- Java Part1 Day11继承 方法重写 super多态
面向对象 一.内容回顾 封装;将类内部的属性隐藏private在类的内部,通过对外的公共接口(public setxxx getxxx)去操作,切薄数据的安全(合理) 实现过程:1属性私有 2封装方法 ...
- Java学习 day11 (继承与多态)接口、多态
前言: 前天我们学习了继承,子类可以在父类的基础上重写父类内容,这样很容易误伤很多固定用法,已经写好的类,为了避免这种情况,java提供了final关键字,用来修饰不可改变内容. 我的理解是,类似于我 ...
- JAVA日记之mybatis-1 ----喝最烈的酒.
1.Mybatis简介 1.1原始jdbc操作(查询数据) 1.2原始jdbc操作(插入数据) 1.3 原始jdbc操作的分析 原始jdbc开发存在的问题如下: ①数据库连接创建.释放频繁造成系统资源 ...
- JAVA日记之SpringJdbcTemplate/声明式事务控制 ----喝最烈的酒.
JdbcTemplate基本使用 01-JdbcTemplate基本使用-概述 JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装.spring框 ...
最新文章
- AIX下镜像制作与取消,更换硬盘
- KeyMob移动广告聚合平台助力开发者,提供广告聚合服务
- BZOJ1084 [SCOI2005]最大子矩阵 动态规划
- TensorFlow 1.2正式发布,新增Python 3.6支持
- SQL 时间默认值设置问题
- 如何撰写较受欢迎的技术文章
- element tree不刷新视图_Vue项目布署后,刷新页面404的真正原因找到了
- 本地创建分支push到github
- font-familly:' 阿里巴巴-普惠体 '【永久免费 】 - 下载与使用
- 用.net core实现反向代理中间件
- 程序员 30 岁前,该如何规划自己的职业发展?
- Python中文乱码
- ElasticSearch(1)CentOS安装ElasticSearch测试CRUD
- 排序算法——冒泡排序(Bubble Sort)
- 胡阳pyhton作业题--20150728
- 【小家Spring】Spring AOP各个组件概述与总结【Pointcut、Advice、Advisor、Advised、TargetSource、AdvisorChainFactory...】
- 与PHP对抗招聘者垃圾邮件-概念证明
- 交换机千兆和百兆对网速影响_交换机千兆和百兆对网速影响_千兆/百兆/核心/PoE/光纤交换机选型指南...
- python 模拟触屏电脑操作_如何在硒中模拟触摸屏?
- js下载get请求返回的文件流(请求头携带token)