当前位置: 首页 > backend >正文

day6-小白学习JAVA---方法_面向对象

day6-小白学习JAVA---方法_面向对象

  • 一、方法
    • 1、方法介绍
    • 2、无参无返回值方法
    • 3、有参无返回值方法
    • 4、无参有返回值方法
    • 5、有参有返回值方法
    • 6、方法的重载
  • 二、面向对象
    • 1、类和对象
      • 1.1、类(实体类)---class
      • 1.2、对象
      • 1.3、练习
    • 2、匿名对象
    • 3、成员变量和局部变量区别
      • 练习

一、方法

1、方法介绍

1.问题描述:之前所有的代码都在main方法中写,如果我们将来将所有功能的代码都放到main方法中,会显得main方法代码太多,太乱,太臃肿-> 不好维护解决:将不同功能的代码放到不同的方法中,想执行某个功能,直接调用方法名就行了,对应的代码就自动执行起来了将来维护的时候,直接找到对应的方法,就可以对其直接修改维护2.方法:拥有功能性代码的代码块将不同的功能放在不同的方法中,给每个方法取个名字,直接调用方法名,对应的方法就执行起来了,好维护3.通用定义格式:修饰符 返回值类型 方法名(参数){方法体return 结果}4.通过通用格式,分成四种方法来学习:a.无参无返回值方法b.有参无返回值方法c.无参有返回值方法d.有参有返回值方法

2、无参无返回值方法

1.无参无返回值方法定义:public static void 方法名(){方法体 -> 实现此方法的具体代码}2.调用:直接调用在其他方法中: 方法名()

在这里插入图片描述
在这里插入图片描述

3、有参无返回值方法

1.格式:public static void 方法名(数据类型 变量名){方法体}2.调用:直接调用:方法名(具体的值) -> 调用的时候要给参数赋值 
public class Demo02 {public static void main(String[] args) {sum(10, 24);}public static void sum(int a, int b) {int sum = a + b;System.out.println("sum = " + sum);}}

4、无参有返回值方法

1.格式:public static 返回值类型 方法名(){方法体return 结果}
public class Demo03 {public static void main(String[] args) {//打印调用System.out.println(sum());//赋值调用int res = sum();System.out.println("res = " + res);}public static int sum() {int a = 10;int b = 20;int sum = a + b;return sum;}
}

5、有参有返回值方法

1.格式:public static 返回值类型 方法名(参数){方法体return 结果}
public class Demo03 {public static void main(String[] args) {//打印调用System.out.println(sum(23, 78));//    赋值调用int res = sum(23, 45);System.out.println("res = " + res);}public static int sum(int a, int b) {int sum = a + b;return sum;}
}

6、方法的重载

1.概述:方法名相同,参数列表不同的方法
2.什么叫参数列表不同:a.参数个数不同b.参数类型不同c.参数类型顺序不同3.判断两个方法是否为重载方法,和什么无关:a.和参数名无关b.和返回值无关
public class Demo1OverLoad {public static void main(String[] args) {sum(10,20);sum(10,20,30);sum(10,20,30,40);}//两个整数相加public static void sum(int a,int b){System.out.println(a+b);}//三个整数相加public static void sum(int a,int b,int c){System.out.println(a+b+c);}//四个整数相加public static void sum(int a,int b,int c,int d){System.out.println(a+b+c+d);}
}

二、面向对象

1、类和对象

1.1、类(实体类)—class

测试类:带main方法的类,主要是运行代码的实体类:是一类事物的抽象表示形式组成部分:1.属性(成员变量):这一类事物有啥a.定义位置:类中方法外  b.作用范围:作用于当前类c.定义格式: 数据类型 变量名d.默认值:整数:0小数:0.0字符:'\u0000'布尔:false引用:null2.行为(成员方法):这一类事物都能干啥只需要将模块六所学的方法中的static干掉,其他的都一样

在这里插入图片描述

public class Weather {//属性-> 成员变量String date;String weather;//行为 -> 成员方法public void windy() {System.out.println("今天大风");}
}

1.2、对象

1.概述:一类事物的具体体现
2.使用:a.导包: import 包名.类名如果两个类在同一个包下,想要使用对方的成员不需要导包如果两个类不在同一个包下,想要使用对方的成员需要导包特殊包:java.lang -> 使用lang包下的类不需要导包 -> String友情提示:在学四种权限修饰符之前,尽量让两个类在同一个包下b.创建对象:想要使用哪个类中的成员,new哪个类的对象类名 对象名 = new 类名() -> 比如: Person person = new Person()c.调用成员(成员变量,成员方法) -> 想要使用哪个类中的成员,就用哪个类的对象去点哪个成员对象名.成员变量名 = 值对象名.方法名() -> 调用的是无参无返回值方法对象名.方法名(实参) -> 调用的是有参无返回值方法数据类型 变量名 = 对象名.方法名() -> 调用的是无参有返回值方法数据类型 变量名 = 对象名.方法名(实参) -> 调用的是有参有返回值方法

在这里插入图片描述

1.3、练习

public class Person {String nane;int age;//无参无返回值方法public void eat() {System.out.println("今天吃什么");}//有参无返回值方法public void drink(String drinkKind) {System.out.println("今天喝" + drinkKind);}//无参有返回值方法public String sex() {String sex1 = "女";return sex1;}//    有参有返回值方法public String age(String a, int b) {String name = a;int age = b;return name + "的年龄是" + age;}
}System.out.println("=========================================");public class ObjectTest {public static void main(String[] args) {//创建对象Person person = new Person();String drinkName = "杨枝甘露";person.age = 25;person.nane = "sean";System.out.println("person.nane = " + person.nane);System.out.println("person.age = " + person.age);//无参无返回值方法调用person.eat();//有参无返回值方法调用person.drink(drinkName);//无参有返回值方法调用String sex1 = person.sex();System.out.println("sex1 = " + sex1);//有参有返回值方法调用String ageName = person.age("sean", 25);System.out.println("ageName = " + ageName);}
}

在这里插入图片描述

2、匿名对象

public class ObjectTest {public static void main(String[] args) {//原始方式Person p = new Person();//匿名对象new Person().eat();new Person().name = "sean";System.out.println(new Person().name);//null}
}

3、成员变量和局部变量区别

1.定义位置不同(重点)a.成员变量:类中方法外b.局部变量:定义在方法之中或者参数位置2.初始化值不同(重点)a.成员变量:有默认值的,所以不用先手动赋值,就可以直接使用b.局部变量:是没有默认值的,所以需要先手动赋值,再使用3.作用范围不同(重点)a.成员变量:作用于整个类b.局部变量:只作用于自己所在的方法,其他方法使用不了4.内存位置不同(了解)a.成员变量:在堆中,跟着对象走b.局部变量:在栈中,跟着方法走5.生命周期不同(了解)a.成员变量:随着对象的创建而产生,随着对象的消失而消失b.局部变量:随着方法的调用而产生,随着方法的调用完毕而消失 
public class Person {String name;//成员变量public void eat(){int i = 10;//局部变量System.out.println(i);System.out.println(name);//成员变量不用手动赋值可以直接使用,因为有默认值}public void drink(){int j;//System.out.println(j);//局部变量没有默认值,所以需要手动赋值再使用System.out.println(name);//System.out.println(i);//i是eat方法的局部变量,在drink中使用不了}
}

练习

需求:定义一个类MyDate,属性有 year  month  day再定义一个类Citizen(公民类),属性有 name(String类型)  birthday(MyDate类型)  idCard(String),为这三个属性赋值,然后将值取出来
public class MyDate {int year;int month;int day;
}System.out.println("===================")public class Citizen {String name;MyDate birthday = new MyDate();String idCard;}System.out.println("===================")public class ObjectTest {public static void main(String[] args) {Citizen citizen = new Citizen();citizen.name = "sean";citizen.birthday.day = 12;citizen.birthday.month = 23;citizen.birthday.day = 45;citizen.idCard = "12345";System.out.println(citizen.name + "," + citizen.idCard + "," + citizen.birthday.year + "," + citizen.birthday.month + "," + citizen.birthday.day);}
}
http://www.xdnf.cn/news/1758.html

相关文章:

  • 了解低功耗蓝牙中的安全密钥
  • 缓存穿透、雪崩、击穿深度解析与解决方案
  • 多线程中的ABA问题详解
  • Java并发编程|CompletableFuture原理与实战:从链式操作到异步编排
  • BGE(BAAI General Embedding)模型详解
  • Nginx 安装与配置全流程指南(2025 最新版)
  • 桌面应用中VUE使用新浏览器窗口打开页面
  • Parasol 将交易卡牌游戏体验带入 Sui
  • Python中的 for 与 迭代器
  • 一种企业信息查询系统设计和实现:xujian.tech/cs
  • 白鲸开源WhaleStudio与崖山数据库管理系统YashanDB完成产品兼容互认证
  • python中socket(套接字)库详细解析
  • 拆解华为Pura X新发现:“仿生”散热与钛合金“骨架”
  • G3学习笔记
  • [C] 第6章 C51函数
  • 音视频之H.265/HEVC量化
  • 项目中数据结构为什么用数组,不用List
  • [Redis] Redis最佳实践
  • 【bmc1】概要,构建image
  • NVIDIA自动驾驶安全与技术读后感
  • 轻松完成视频创作,在线视频编辑器,无需下载软件,功能多样实用!
  • 【国产化之路】VPX-3U :基于D2000 /FT2000的硬件架构到操作系统兼容
  • postgres 导出导入(基于数据库,模式,表)
  • 优先级队列和仿函数的讲解(底层实现)
  • AWS 中国区 CloudFront SSL 证书到期更换实战指南
  • Missashe考研日记-day26
  • c++内存分布
  • 黑马点评--图形化界面连接redis
  • 【刷题】第三弹——二叉树篇(上)
  • 探寻健康密码:养生从日常细节开始