Stay Hungry,Stay Foolish.-D.|

十里-

园龄:4年粉丝:0关注:2

面向对象编程基础

类和对象的区别和联系

类是抽象的,概念的,代表一类事物,比如人类,猫类.., 即它是数据类型.

对象是具体的,实际的,代表一个具体事物, 即 是实例.

类是对象的模板,对象是类的一个个体,对应一个实例

image

属性,成员变量,字段

成员变量 = 属性 = field(字段) (即 成员变量是用来表示属性的,统一叫属性

属性是类的一个组成部分,一般是基本数据类型,也可是引用类型(对象,数组)。比如我们前面定义猫类的int age就是属性

属性的定义语法同变量,示例:访问修饰符 属性类型 属性名; 这里老师简单的介绍访问修饰符: 控制属性的访问范围 有四种访问修饰符 public, proctected, 默认, private ,后面我会详细介绍

属性的定义类型可以为任意类型,包含基本类型或引用类型

属性如果不赋值,有默认值,规则和数组一致。具体说: int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null

创建对象

先声明再创建 Cat cat ; //声明对象 cat cat = new Cat();

//创建 2) 直接创建 Cat cat = new Cat();

访问属性

基本语法 对象名.属性名; 案例演示赋值和输出 cat.name ; cat.age; cat.color;

类和对象的内存分配机制(重要) 看一个思考题 我们定义一个人类(Person)(包括 名字,年龄)。

类和对象的内存分配机制

Java 内存的结构分析

  1. 栈: 一般存放基本数据类型(局部变量)
  2. 堆: 存放对象(Cat cat , 数组等)
  3. 方法区:常量池(常量,比如字符串), 类加载信息

\1) 先加载 Person 类信息(属性和方法信息, 只会加载一次)

在堆中分配空间, 进行默认初始化(看规则)

把地址赋给 p , p 就指向对象

进行指定初始化, 比如 p.name =”jack” p.age = 10

成员方法

public void speak() { 
    System.out.println("一个好人");}
//成员方法的好处
//1) 提高代码的复用性
//2) 可以将实现的细节封装起来,然后供其他用户来调用即可
/*
成员方法的定义
访问修饰符 返回数据类型 方法名(形参列表..) {//方法体
语句;
return 返回值;
}
*/

image

image

成员方法传参机制(非常重要)

结论:基本数据类型,传递的是值(值拷贝),形参的任何改变不影响实参

引用数据类型的传参机制(数组,对象...)

引用类型传递的是地址(传递也是值,但是值是地址),可以通过形参影响实参!

方法的递归(非常重要)

简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂问题,同时可以让代码变得简洁

1) 打印问题
2) 阶乘问题
代码
public class Recursion01 {
//编写一个 main 方法
public static void main(String[] args) {
T t1 = new T();
t1.test(4);//输出什么? n=2 n=3 n=4
int res = t1.factorial(5);
System.out.println("5 的阶乘 res =" + res);
}
}
class T {
//分析
public void test(int n) {
if (n > 2) {
test(n - 1);
}
System.out.println("n=" + n);
}
//factorial 阶乘
public int factorial(int n) {
if (n == 1) {
return 1;
} else {
return factorial(n - 1) * n;
}
}
}

image

image

方法重载

java 中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!

image

可变参数

java 允许将同一个类中多个同名同功能但参数个数不同的方法,封装成一个方法。 就可以通过可变参数实现

语法:

访问修饰符 返回类型 方法名(数据类型... 形参名) { }

//1. int... 表示接受的是可变参数,类型是 int ,即可以接收多个 int(0-多)
//2. 使用可变参数时,可以当做数组来使用 即 nums 可以当做数组
//3. 遍历 nums 求和即可
public int sum(int... nums) {
//System.out.println("接收的参数个数=" + nums.length);
int res = 0;
for(int i = 0; i < nums.length; i++) {
res += nums[i];
}
return res;
}

1)可变参数的实参可以为0个或任意多个。

2)可变参数的实参可以为数组。
3)可变参数的本质就是数组.
4)可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后5)一个形参列表中只能出现一个可变参数

作用域

1.在java编程中,主要的变量就是属性(成员变量)和局部变量。
2我们说的局部变量一般是指在成员方法中定义的变量。【举例Cat类: cry】

3.java中作用域的分类
全局变量:也就是属性,作用域为整个类体Cat类: cry eat等方法使用属性【举例】
局部变量;也就是除了属性之外的其他变量,作用域为定义它的代码块中!全局变量(属性)可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值。[举例]

image

构造方法、构造器

语法:

  1. [修饰符] 方法名(形参列表)
  2. 构造器的修饰符可以默认, 也可以是 public protected private
  3. 构造器没有返回值
  4. 方法名 和类名字必须一样
  5. 参数列表 和 成员方法一样的规则
  6. 构造器的调用, 由系统完成

构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。它有几个特点:1) 方法名和类名相同 2) 没有返回值 3) 在创建对象时,系统会自动的调用该类的构造器完成对象的初始化。

image

this关键字

this代表当前对象

this:哪个对象调用,就代表哪个对象

this 关键字可以用来访问本类的属性、方法、构造器

this 用于区分当前类的属性和局部变量

访问成员方法的语法:this.方法名(参数列表);

访问构造器语法:this(参数列表); 注意只能在构造器中使用(即只能在构造器中访问另外一个构造器, 必须放在第一条语句)

this 不能在类定义的外部使用,只能在类定义的方法中使用。

本文作者:十里-

本文链接:https://www.cnblogs.com/zfDr-dr/p/17963984

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   十里-  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 晚风 7copy,BT07
晚风 - 7copy,BT07
00:00 / 00:00
An audio error has occurred.

作词 : 7copy/BT07

作曲 : 7copy/BT07

编曲:July

采样:星爷

混音:XTONE

出品:网易音乐人 X 青云LAB

将近的晚风快吹干整条小巷

燃尽的灯光无法再将我们点亮

要明白有些事情不能总靠想象

大不了今晚继续喝到明天早上

看不到希望的人还在自言自语说着

抱怨得不到温暖的人还在继续作着

他对着电话那头说着自己过得很好

挂断之后他又在被子里面偷偷哭了

不存在一帆风顺 偶尔也会去疯混

尽管有好多人讨论着你是什么门货

慢慢也有了分寸 不屑于那些争论

所以我大多数的时候都会选择沉默

付出的一切难免最后都会化为落尘

就算整个世界空绝就剩我独自一人

感觉到肩上重了 心里又再次痛了

把委屈偷偷收好

索性忘掉那些过程

一个人漫无目的 迷失在晚风里

我知道后会无期 但也不能逃避

迷惘的日子里 感谢能遇见你

究竟还要经历多少荆棘

也许该为我的选择庆幸

人活着到底为了什么东西

忙碌可能为了一张到老

也不够还清的账单

我每天碌碌无为

却又感觉活的累

总有人劝我别**追梦了

快去上班

混到头来不过为了一个名称

你喜欢的东西总有许多人争

他们随便动动手指就能得到的

你却要付出百倍努力

还要赌上你的人生

或许被打到鼻青脸肿

也不敢还手吧

你知道后果

没有人可以来为你承担

吃完泡面会撒谎自己的钱还有

一半是不想被担心一半怕再难堪

我没有他们那么出众

没有开豪车的叔送

就这样其实我也无所谓

不就是被骂了两句

并不值得你去选择放弃

听完这首歌就早点睡

一个人漫无目的 迷失在晚风里

我知道后会无期 但也不能逃避

迷惘的日子里 感谢能遇见你

究竟还要经历多少荆棘

也许该为我的选择庆幸

你没做怎么知道没搞头

你不要做了

我劝你要脚踏实地的做人嘛

这里有份洗厕所的工作你先做着

你就别做梦了

做人如果没梦想

那跟咸鱼有什么分别啊

你连鞋都没有

那不就是咸鱼一条喽

还学人家讲理想

话不能这么讲

我心中的一团火是不会熄的

那把它吹熄了 不熄

熄了可以再点着它