2022-07-18 day09 第一小组 王鸣赫

1|0面向对象

面向过程和面向对象

面向过程:面向过程就是分析出实现需求需要的步骤,通过一些方法一步一步实现。

面向对象(行为化):把整个需求的按照特点、功能划分,将这些存在共性的部分封装成类(类实例化之后才是对象),让对象去解决问题。

定义变量:1、brand,2、color,3、length...

在Java中,面向对象有3大特征:
1、封装
2、继承
3、多态
4、抽象
有返回值的方法在执行后会得到一个具体的值,这个值可以存下来的

1|1属性

创建对象的语法:类名 对象名 = new 类名()

成员方法

  • 方法名不能重复
  • 自己调自己-递归
  • 递归的问题:StackOverflowError 栈溢出 内存溢出
  • 开发中到底要不要用递归?如果用的话,要注意什么?
点击查看代码
public class Ch01 { // 斐波那契数列 /* 我们知道除了0和1,第number个数字 等于第number-1个数和第number-2个数的和 当number = 4; return fibonacci(3) + fibonacci(2); fibonacci(3) = fibonacci(2) + fibonacci(1) fibonacci(2) = fibonacci(1) + fibonacci(0) */ public int fibonacci(int number){ if(number == 0 || number == 1){ return number; }else { return fibonacci(number - 1) + fibonacci(number - 2); } // int result = 0; // for (int i = 0; i < number; i++) { // // result = (number - 1) + (number - 2); // } } public int factorial(int number) { // 5! = 5 * 4 * 3 * 2 * 1 // 循环的做法 // int result = 1; // for (int i = 1; i <= number ; i++) { // result *= i; // } if(number <= 1){ return 1; } return number * factorial(number - 1); } public void run(){ run(); System.out.println("汽车启动啦!"); } // main方法 主方法 /* 如果一个方法有static 要调用一个非static的方法 就只能创建对象,使用对象.方法的形式调用 */ public static void main(String[] args) { Ch01 c = new Ch01(); // c.run(); // int i = c.fibonacci(3); int i = c.factorial(5); System.out.println(i); } }
1|2重载

方法名相同
参数不同(参数的类型,参数的个数,参数的顺序)
发生在同一个类里
与返回值类型无关,与访问权限修饰符无关,与方法体无关

方法的重载的好处:

为了把功能相似相同的方法用同一个名字

求最大值

点击查看代码
public class Ch03 { public int max(int num1,int num2) { return num1 > num2 ? num1:num2; } public int max(int num1,int num2,int num3){ int a = (num1 > num2 ? num1 : num2); return a > num3 ? a : num3; } public static void main(String[] args) { Ch03 c = new Ch03(); c.max(1,2,3); } }
不定长参数

1.参数列表中,至多有一个不定长参数
2.不定长参数必须在最后位置

访问权限:

public:一个工程下任意位置都可以访问
类,属性上,方法上,构造器
protected:可以跨包,如果跨包,必须是他的子类
属性,方法,构造器
(默认的):当前包下可以访问
类,属性,方法,构造器
private:只有当前类可以访问
属性,方法,构造器

2|0构造器(构造方法)

  • 语法:

  • 访问权限修饰符 类名(参数列表){

  • 特点:

  • 1.java在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器。

  • 如果没有构造器,则无法创建对象

  • 2.每个类会有一个默认的无参的构造器

  • 3.在对象被实例化时,调用了构造器

  • 4.我们创建对象实际上是通过构造器创建的

  • 5.如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器就失效

感受
今日知识十分抽象,构造器部分没有思路


__EOF__

本文作者404notfond
本文链接https://www.cnblogs.com/wmh19990109/p/16492035.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   404notfond  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示