Java学习笔记------面向对象

在这里插入图片描述

对象之间的赋值是引⽤传递:

Student s1 = new Student();

s1.id = 1;

s1.name = “zhangsan”;

s1.score = 90;

Student s2 = s1;

System.out.println(s2.id + " " + s2.name + " " + s2.score);

System.out.println(“=修改了S2对象的值”);

s2.id = 2;

s2.name = “lisi”;

s2.score = 99;

System.out.println(s2.id + " " + s2.name + " " + s2.score);

System.out.println(“-------S1对象的值--------”);

System.out.println(s1.id + " " + s1.name + " " + s1.score);

如果对象之间赋值,不想引起引⽤传递的问题,可以先new不同的对象,然后对象的值再⼀⼀赋值

Student s1 = new Student();

s1.id = 1;

s1.name = “zhangsan”;

s1.score = 90;

Student s2 = new Student();

s2.name = s1.name;

s2.id = s1.id;

s2.score = s1.score;

在这里插入图片描述

如果已经有两个不同的对象了,另外⼀个对象再赋值,还是会指向同⼀个地址,之前的引⽤就会被抛弃掉

在这里插入图片描述

类的行为

类和类之间的关系

泛化关系 – 继承和实现

依赖关系

一个类的方法中,需要依赖另外一个类

一般实现方式都是:

1.在类中的方法中,有另一个类对象的实例

2.在类中的方法参数中,需要另一个类的对象

public class Boy {

String name;

public void play(Dog d){

d.dogName = “旺财”;

d.happy();

System.out.println(name + “玩耍的很⾼兴~~~”);

}

/*public void play(){

Dog d = new Dog();

d.dogName = “旺财”;

d.happy();

System.out.println(name + “玩耍的很⾼兴~~~”);

}*/

}

组合(聚合)关系

一个类在另一个类中作为属性出现

public class Student {

int id;

String studentName;

double score;

MyClass clazz;

}

public class MyClass {

int id;

String className;

Student [] stus = new Student[50];

}

构造函数(构造方法,构造器)

当new对象的时候会自动调用方法

注意:默认类其实就有一个默认构造方法,只是没有手动调而已

public 类名(){}

可以手动给构造器自己想要的参数

public 类名(int xxx,string xxxx){}

当写了带参构造器会覆盖默认不带参构造器

重载

在同⼀个类中,⽅法名⼀样,但是参数的个数,参数的类型或者不同参数类型的顺序不⼀样,就可以实现重载

public Person(int id, String name, int age){

this.id = id;

this.name = name;

this.age = age;

}

public Person(int id, String name){

this.id = id;

this.name = name;

}

public Person(int id){

this.id = id;

}

public Person(){

}

public void test(int age,String ss){}

public void test(String s,int a){}

如果写了不带参的构造器,会覆盖默认的构造器

最佳实践就是: 如果要写不带参的构造器,那么最好能把默认的构造器写⼀遍

final

final修饰符,可以修饰变量,方法以及类

final修饰变量 表示变量不能再被修改,所以一般意义上我们称呼final修饰的变量为常量,而且注意一个问题,常量必须要有初始值

注意:在Java中,我们一般习惯上声明一个常量 static final ,并且常量名全部大写,static和final都是修饰符,所以先后顺序没有规定static final,final static

final 可以修饰方法,当修饰方法的时候这个方法不能被重写

final可以修饰类,当修饰类的时候,这个类不能再被继承

static

static 可以修饰变量和方法,当被static修饰的时候,这个变量或方法就会被叫做静态变量或静态方法,他们是有别于成员变量和成员方法的

static修饰的变量或方法是属于整个类的,而不是某个对象的

static修饰的变量有唯一值,而且只会生成一次

静态的方法中,只能引用本类的静态的方法或变量,如果要引用其他方法只能用对象进行调用

静态的变量和方法在初始化的时候优先级比成员变量和成员方法高

访问修饰符

1.public 公共的,公开的 完全公开的

2.private 私有的 只能在类的内部使用

3.protected 受保护的

4.默认的

protected和默认的,在同一个包下面和public访问权限一致

在不同的包中,对象不能直接访问protected和默认的修饰的变量和方法

在不同的包中,子类中可以访问protected修饰的变量和方法

Java访问控制法的含义和使用情况

| | 类内部 | 本包 | 子类 | 外部包 |

| :-: | :-: | :-: | :-: | :-: |

| public | √ | √ | √ | √ |

| protected | √ | √ | √ | × |

| default | √ | √ | × | × |

| private | √ | × | × | × |

JavaBean

程序员在经过长期的代码编程过程中,总结出来的经验,如果我们要封装一个类,这个类的作用仅仅就是用来存储数据的,那么可以把这个类封装为Javabean

JavaBean格式:

所有属性全部都是private修饰的

而每个属性都配置getter和setter方法

静态块与实例化块

静态块

static{

}

实例化块

{

}

变量的初始值

类的属性(成员变量),当对象初始化的时候,会自动初始化成员变量的值

整形 0

浮点型 0.0

布尔型 false

字符型 ascll的值

引用型 null

java局部变量不会自动赋初始值

继承

1、extends关键字

2、⼦类继承⽗类

3、⽗类中可以被访问的属性和⽅法都能被⼦类继承

4、⼦类可以继承⽗类的⽗类…

5、java的继承有单根性 – ⼦类只能有⼀个⽗类,⽗类可以有多个⼦类

在这里插入图片描述

当new ⼦类()对象的时候,会先调⽤⽗类的默认⽆参构造器,如果⽗类没有默认⽆参构造器,就会报

错。

修改错误的最佳办法就是,⽗类加上⽆参构造器

super

super和this用法一样,只是super代替的是父类

super(),表示⽗类的构造器,调⽤⽗类的构造器必须写在⼦类构造器的第⼀⾏

重写

条件:

1、继承

2、⼦类重写⽗类的⽅法

3、⽅法名,参数个数和类型都必须⼀样

4、⼦类重写⽅法的访问修饰符不⼩于⽗类的⽅法

5、返回值⼀样

6、声明的异常要⼀样

instanceof

先自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

img

总结

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

部分内容截图:

[外链图片转存中…(img-yOJhkxxM-1711381465550)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以扫码领取!

img

总结

其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。

这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来

目录:

[外链图片转存中…(img-2bD600Tp-1711381465550)]

部分内容截图:

[外链图片转存中…(img-6UGn3BIo-1711381465551)]

[外链图片转存中…(img-bAFjj1ed-1711381465551)]
需要更多Java资料的小伙伴可以帮忙点赞+关注,点击传送门,即可免费领取!

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值