回顾:

  • 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相关推荐

  1. Java基础day11

    Java基础day11 Java基础day11-多态&抽象类&接口 1 多态 1.1多态的概述 1.2多态中的成员访问特点 1.3多态的好处和弊端 1.4多态中的转型 1.5多态的案例 ...

  2. Java学习日记Day11(面向对象day05)

    面向对象第5天: 回顾: 向上造型:--------------代码复用 超类型的引用指向派生类的对象 能点出来什么,看引用的类型------------------这是规定 方法的重写(overri ...

  3. 【Java】学习日记 Day11

    作者|Rickyの水果摊 时间|2022年7月13日

  4. Java日记April

    April 2020-04-01 ​ 今天是2020年4月11日,算是一个回溯,因为四月一号(其实是3月29,但是凑一下整不好吗),是开始学JAVA的日子,后来打算写一下日记,与其说是用来分享,不如说 ...

  5. 小汤学编程之JAVA基础day11——集合框架:List/Set/Map集合、Collections集合工具类、泛型、TreeMap和TreeSet

    一.集合的特点 二.继承结构图 三.List集合 1.特点     2.ArrayList类     3.LinkedList类     4.两者的对比     5.集合的遍历 四.Set集合 1.特 ...

  6. Java Part1 Day11继承 方法重写 super多态

    面向对象 一.内容回顾 封装;将类内部的属性隐藏private在类的内部,通过对外的公共接口(public setxxx getxxx)去操作,切薄数据的安全(合理) 实现过程:1属性私有 2封装方法 ...

  7. Java学习 day11 (继承与多态)接口、多态

    前言: 前天我们学习了继承,子类可以在父类的基础上重写父类内容,这样很容易误伤很多固定用法,已经写好的类,为了避免这种情况,java提供了final关键字,用来修饰不可改变内容. 我的理解是,类似于我 ...

  8. JAVA日记之mybatis-1 ----喝最烈的酒.

    1.Mybatis简介 1.1原始jdbc操作(查询数据) 1.2原始jdbc操作(插入数据) 1.3 原始jdbc操作的分析 原始jdbc开发存在的问题如下: ①数据库连接创建.释放频繁造成系统资源 ...

  9. JAVA日记之SpringJdbcTemplate/声明式事务控制 ----喝最烈的酒.

    JdbcTemplate基本使用 01-JdbcTemplate基本使用-概述 JdbcTemplate是spring框架中提供的一个对象,是对原始繁琐的Jdbc API对象的简单封装.spring框 ...

最新文章

  1. AIX下镜像制作与取消,更换硬盘
  2. KeyMob移动广告聚合平台助力开发者,提供广告聚合服务
  3. BZOJ1084 [SCOI2005]最大子矩阵 动态规划
  4. TensorFlow 1.2正式发布,新增Python 3.6支持
  5. SQL 时间默认值设置问题
  6. 如何撰写较受欢迎的技术文章
  7. element tree不刷新视图_Vue项目布署后,刷新页面404的真正原因找到了
  8. 本地创建分支push到github
  9. font-familly:' 阿里巴巴-普惠体 '【永久免费 】 - 下载与使用
  10. 用.net core实现反向代理中间件
  11. 程序员 30 岁前,该如何规划自己的职业发展?
  12. Python中文乱码
  13. ElasticSearch(1)CentOS安装ElasticSearch测试CRUD
  14. 排序算法——冒泡排序(Bubble Sort)
  15. 胡阳pyhton作业题--20150728
  16. 【小家Spring】Spring AOP各个组件概述与总结【Pointcut、Advice、Advisor、Advised、TargetSource、AdvisorChainFactory...】
  17. 与PHP对抗招聘者垃圾邮件-概念证明
  18. 交换机千兆和百兆对网速影响_交换机千兆和百兆对网速影响_千兆/百兆/核心/PoE/光纤交换机选型指南...
  19. python 模拟触屏电脑操作_如何在硒中模拟触摸屏?
  20. js下载get请求返回的文件流(请求头携带token)

热门文章

  1. 织梦DedeCms忘记管理员密码如何破解
  2. MindManager 2020 Win v20.1.238思维导图软件开心版安装教程
  3. 【Linux】关于路由跟踪指令traceroute
  4. Unity应用单件模式
  5. [刷题之旅no14]P1553 数字反转(升级版)
  6. 设计能力-你如何进行领域建模
  7. 提高硬件设计能力的学习路线
  8. Android——CInit源码分析
  9. ubuntu-jupyter环境搭建
  10. CoOS之任务控制块