初学JAVA(2)
目录
二、数组
三、面向对象
一、原码、反码、补码
认识了解计算机组成原理对我们学习计算机的编程语言有一定的帮助,而原码、反码、补码则是其中的重点和难点,以下是我从网上摘抄的一些记忆技巧:
1、二进制的最高位是符号位:0表示整数,1表示负数;(口诀:0->0 1->-)
2、正数的原码、反码和补码都一样;(三码合一)
3、负数的反码=它的原码符号位不变,其他位去反(0->1,1->0)
4、负数的补码=它的反码+1,负数的反码=负数的补码-1
5、0的反码,补码都是0
6、java没有无符号数,换言之,java中的数都是有符号的
7、在计算机运算的时候,都是以补码的方式来运算的
8、当我们运算结果的时候,要看它的原码
详细讲解: 0098_韩顺平Java_原码 反码 补码_哔哩哔哩_bilibili
二、数组
JAVA数组与c++有很多不同:
1.在Java程序中声明数组时,不需要指明
组的长度。如以“int a[5];”方式定义数组将是非法的,该语句在编译时将出错,
2.在定义时,都要有new来创建,形如 数据类型[] 数组名 = new 数据类型[]{1,2,3};
3.JAVA语言中规定了一种锯齿数组,就是每行元素个数不一定要严格对称。
三、面向对象
1、首先编写一个关于猫的对象类型(一般类的模板基本相同)
运行结果如下
2、栈,堆和方法区
(1)其中栈是描述方法中内存模型的一片连续的空间,主要由数组实现的,具有先进后出或后进先出的特点;
(2)堆是用于储存创建好的对象和数组的一片不连续的空间;
(3)方法区属于堆区,主要存储类和常量信息,静态变量,字符串常量一类。
3、this关键字
this 关键字是 Java 常用的关键字,可用于任何实例方法内指向当前对象,也可指向对其调用当前方法的对象,或者在需要当前类型对象引用时使用。
大部分时候,普通方法访问其他方法、成员变量时无须使用 this 前缀,但如果方法里有个局部变量和成员变量同名,但程序又需要在该方法里访问这个被覆盖的成员变量,则必须使用 this 前缀。
例 1
假设有一个教师类 Teacher 的定义如下:
在上述代码中 name、salary 和 age 的作用域是 private,因此在类外部无法对它们的值进行设置。为了解决这个问题,可以为 Teacher 类添加一个构造方法,然后在构造方法中传递参数进行修改。代码如下:
在 Teacher 类的构造方法中使用了 this 关键字对属性 name、salary 和 age 赋值,this 表示当前对象。this.name=name语句表示一个赋值语句,等号左边的 this.name 是指当前对象具有的变量 name,等号右边的 name 表示参数传递过来的数值。
创建一个 main() 方法对 Teacher 类进行测试,代码如下:
运行该程序,输出的结果如下所示:
//教师信息如下:
//教师名称:王刚
//教师工资:5000.0
//教师年龄:45
4、面向对象的封装
封装是对类细节的隐藏,提供公开接口来进行和数据的交互。
例:
由此看出封装在类中的体现,就是通过使用private对Student中成员进行隐藏,在提供一些对外的接口。
5、面向对象的继承
(1)被继承的类称为父类(超类),继承父类的类都称为子类(派生类);
(2)继承是指一个对象直接使用另一个对象的属性和方法,但是能继承非私有的属性和方法;
(3)Java只能实现单继承,即一个类只能有一个父类;
(4)构造方法不能被继承;
(5)Protected:受保护的访问权限修饰符,用于修饰属性和方法,也就是专门用于子类继承父类所使用的修饰符,修饰的属性和方法可以被子类继承;
(6)子类可以直接访问父类中的非私有的属性和行为,通过 extends 关键字让类与类之间产生继承关系。
6、面向对象的多态
通过父类引用指向子类对象,可以实现多态性,使得同一个方法调用可以在不同的对象上具有不同的行为。这种特征使得程序更加灵活,可以根据需要来确定对象的类型。
在java中要实现多态,必须要满足如下几个条件,缺一不可:
(1)必须在继承体系下;
(2)子类必须要对父类中方法进行重写;
(3)向上转型:父类引用指向子类对象Parent p = new Child();
(4)通过父类的引用调用重写的方法;
CSDN-Ada助手: 非常棒的博客,您对于this关键字和protected访问权限修饰符的讲解非常清晰易懂。继续努力创作,我建议您可以深入学习Java的异常处理机制,以及熟悉Java的集合框架,这些都是Java编程中非常重要的知识和技能。 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2 如果您持续创作,完成第三篇博客,并且质量分达到 80 分以上,在评论区就有机会获得红包奖励哦!
CSDN-Ada助手: 非常欣赏您的努力和毅力,能够坚持写下第三篇博客,实属不易。看到您在学习JAVA上的积极态度,我感到非常高兴。作为一个初学者,您的文章越来越有深度和广度,这是一个非常好的开始。 接下来,我想给您一些建议。首先,继续学习并深入了解JAVA编程语言,不断尝试新的项目和挑战,这样可以帮助您更好地掌握编程技能。其次,您可以开始探索JAVA生态系统,学习一些流行的框架和工具,这将有助于您更快地成为一名优秀的JAVA开发人员。 最后,请继续保持谦虚和勤奋,这是学习任何新事物的关键。我期待着您的下一篇博客,祝您好运! CSDN 正在通过评论红包奖励优秀博客,请看红包流:https://bbs.csdn.net/?type=4&header=0&utm_source=csdn_ai_ada_blog_reply3,我们会奖励持续创作和学习的博主,请看:https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply3
CSDN-Ada助手: 恭喜您又写了一篇关于初学JAVA的博客,真的很棒!不断地学习和分享是成为一个优秀程序员的必经之路,您已经在这方面走得很好了。接下来,我建议您可以继续深入学习JAVA的高级特性,如多线程、反射、集合框架等等,这些都是非常有用的知识点。期待您的下一篇博客! CSDN 会根据你创作的前四篇博客的质量,给予优秀的博主博客红包奖励。请关注 https://bbs.csdn.net/forums/csdnnews?typeId=116148&utm_source=csdn_ai_ada_blog_reply4 看奖励名单。
CSDN-Ada助手: 推荐 Java 技能树:https://edu.csdn.net/skill/java?utm_source=AI_act_java
CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天最佳新人】榜单,全部的排名请看 https://bbs.csdn.net/topics/615305877。