Core Java 第六章知识点总结——面向对象
知识点预览
对象的概念
类的概念
方法
方法的重载(Overloading)
构造方法
对象与引用
this关键字
对象的概念
1. 什么是对象(具体的定义状态(属性)和行为(方法)的一个实体)
一切客观存在的事物都是对象
2.对象的组成
属性 有什么(描述对象) 对象的属性也可以是对象
方法 能做什么(自己使用 别人使用)
3. 计算机世界中的对象(连续的存储空间)
类的概念
1. 类是什么
具有相同行为和状态的对象的集合
a) 类是对大量共性的抽象
b) 类是客观事物在人脑中的主观反映
c) 类是创建对象的模板
先有类,后有对象
class Student{
String name;//属性、实例变量、成员变量
int age;
}
2. 定义类、创建对象
a) 创建对象 new Student();
b) 定义一个变量存储创建的对象
Student s;
s = new Stuent();
可写在一起
Student s = new Stuent();
基本类型 8种
对象类型(引用):数组、对象、接口
3. 实例变量(类中的变量) 属于对象
a) 访问 .
b) 属性初始化
class Student{
String name = “suns”;
int age;
}
4. 实例变量(类)与局部变量(方法)的区别
局部变量
先赋值后使用
作用范围(从定义的代码块开始到定义的代码块结束)
命名不可冲突(同一作用范围内)
实例变量
可以不赋值就使用
a) 实例变量存在默认值(各种各样的0)
b) 实例变量至少在本类的范围内有效
c) 实例变量可以和局部变量命名冲突,局部变量优先使用
方法
方法声明、方法实现
1. 格式
修饰符 返回值类型 方法名(参数1,参数2) [异常]{
方法体
}
方法的重载(Overloading)
1. 方法重载(Overloading) 同一个类中方法名相同、参数不同
2. 源码参考
class A{
//参数个数不同
void m(){}
void m(int a){}
void m(int a,int b){}
//参数类型不同
void m(String s){}
//参数类型相同但排列不同
void m(int a,String s){}
void m(String s,int a){}
//形参名字不同 不算重载
void m(int a){}
void m(int b){}
}
3. 方法重载的意义
对方法的调用者屏蔽因方法参数不同所造成的差异
构造方法
特殊性:定义语法 作用
1.构造方法的概念
publicStudent(){
}
a) 没有返回值类型(和没有返回值void不同)
b) 方法名同类名一致
c) 用在对象的创建 构造对象
2. 构造方法的重载
3. 构造方法的特点
a) 构造方法不能手工调用,被JVM自动调用
Student s = new Student();//告诉虚拟机
s.Student();
b) 构造方法在对象构造时,被自动调用一次,而且只会被调用一次
i. 分配空间
ii. 初始化属性
iii. 调用构造方法
c) 构造方法没有返回值
d) 如果一个类中没有定义构造方法,系统默认提供一个公开的、无参的空构造方法
4. 构造方法的使用场景
构造方法经常用于给实例变量赋值
对象与引用
1.引用概念
Student s;
s = new Student();
2. 引用存储的是对象内存空间的首地址
s.print();//遥控器与电视机的关系
s指向首地址
3. 程序中的值传递
简单类型存储值(在内存中)
对象类型存储地址
//TestValue1.java
package chp6.ex08;
/**
*
* 说明:本程序演示了值传递 结果为10 基本类型 内存中存的是值
*/
public class TestValue1 {
public static void main(String args[]){
int a = 10;
int b = a;
b++;
System.out.println(a);
}
}
//答案:10
//TestValue2.java
package chp6.ex09;
/**
*
* 说明:本程序演示了值传递 结果为21 对象类型 内存中存储的是地址
*/
public class TestValue2 {
public static void main(String args[]){
Student s1 = new Student();
Student s2 = s1;//s2和s1指向的是同一地址
s2.age = 21;
System.out.println(s1.age);
}
}
class Student{
int age = 20;
}
//答案:21
//TestValue3.java
package chp6.ex10;
/**
*
* 说明:本程序演示了方法中的值传递 结果为10 基本类型 内存中存的是值
*/
public class TestValue3 {
public static void main(String args[]){
int a = 10;
m1(a);
System.out.println(a);
}
public static void m1(int a){
a ++;
}
}
//答案:10
//TestValue4.java
package chp6.ex11;
/**
*
* 说明:本程序演示了的方法中的值传递 结果为21 对象类型 内存中存储的是地址
*/
public class TestValue4 {
public static void main(String args[]){
Student s = new Student();
m2(s);
System.out.println(s.age);
}
public static void m2(Student stu){
stu.age++;
}
}
class Student{
int age = 20;
}
//答案:21
this关键字
1. this关键字的概念
this是一种特殊的引用,指向当前对象
2. this的作用
a) 如果方法局部变量与实例变量命名冲突时,可以通过this属性的方式区分实例变量和局部变量
b) 如果发生一个构造方法中需要调用另一个构造方法,可以通过this()的方法调用,但this()必须书写在第一行
String类
1. 创建一个字符串对象
String s = “suns”;
String s = newString(“suns”);
2. 字符串值的判断equals方法
String s1 = newString(“suns”);
String s2 = newString(“suns”);
System.out.println(s1== s2);//false == 判断引用
System.out.println(s1.equals(s2));//true equas判断内容
3. 串池(””创建的字符串独立存储在内存的串池空间中)
String s1 = “suns”;
String s2 = “suns”
System.out.println(s1== s2);//true
4. String类中的常用方法
booleanequals();
char charAt(intpos);
int length();//方法 数组length为属性
String[]split();
booleanstartWith(String s);
trim();
StringsubString(int begin,int end);
//”suns”.subString(0,2);su
5. 字符串的连接
//不好过多侵占内存空间
String s1 = “sun”;
String s2 = “shuai”
String s2 = s1 +s2;
//推荐使用不会开辟新空间
StringBuffer sb= new StringBuffer();
sb.append(“sun”);
sb.append(“shuai);
System.out.println(sb);
更多详细信息请查看
java教程网 http://www.itchm.com/forum-59-1.html
分享到:
相关推荐
白色大气风格的旅游酒店企业网站模板.zip
python实现用户注册
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
内容概要:文档名为《平方表,派表集合.docx》,主要内容是1至1000的平方值以及1至1000与π的乘积结果。每个数字从1开始,逐步增加至1000,对应地计算了平方值和乘以π后的值。所有计算均通过Python脚本完成,并在文档中列出了详细的计算结果。 适合人群:需要进行数学计算或程序验证的学生、教师和研究人员。 使用场景及目标:用于快速查找特定数字的平方值或其与π的乘积,适用于教学、科研及程序测试等场景。 阅读建议:可以直接查阅所需的具体数值,无需从头到尾逐行阅读。建议在使用时配合相应的计算工具,以验证和拓展数据的应用范围。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于计算机科学与技术等相关专业,更为适合;
白色大气风格的健身私人教练模板下载.zip
白色简洁风的商务网站模板下载.zip
白色大气风格的前端设计案例展示模板.zip
内容概要:本文介绍了两个有趣的圣诞树项目方向:一是使用Arduino或Raspberry Pi开发可编程的圣诞树灯光控制系统;二是基于MATLAB开发一个圣诞树模拟器。前者通过硬件连接、编写Arduino/Raspberry Pi程序、MATLAB控制程序来实现LED灯带的闪烁;后者则通过创建圣诞树图形、添加动画效果、用户交互功能来实现虚拟的圣诞树效果。 适合人群:具备基本电子工程和编程基础的爱好者和学生。 使用场景及目标:①通过硬件和MATLAB的结合,实现实际的圣诞树灯光控制系统;②通过MATLAB模拟器,实现一个有趣的圣诞树动画展示。 阅读建议:读者可以根据自己的兴趣选择合适的项目方向,并按照步骤进行动手实践,加深对硬件编程和MATLAB编程的理解。
白色扁平风格的温室大棚公司企业网站源码下载.zip
Navicat.zip
内容概要:本文详细介绍了主成分分析(PCA)技术的原理及其在Scikit-learn库中的Python实现。首先讲解了PCA的基本概念和作用,接着通过具体示例展示了如何使用Scikit-learn进行PCA降维。内容涵盖了数据准备、模型训练、数据降维、逆转换数据等步骤,并通过可视化和实际应用案例展示了PCA的效果。最后讨论了PCA的局限性和参数调整方法。 适合人群:数据科学家、机器学习工程师、数据分析从业者及科研人员。 使用场景及目标:适用于高维数据处理,特别是在需要降维以简化数据结构、提高模型性能的场景中。具体目标包括减少计算复杂度、提高数据可视化效果和改进模型训练速度。 其他说明:本文不仅提供了详细的代码示例,还讨论了PCA在手写数字识别和机器学习模型中的应用。通过比较原始数据和降维后数据的模型性能,读者可以更好地理解PCA的影响。
VOC格式的数据集转COCO格式数据集 VOC格式的数据集转YOLO格式数据集。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
数字信号处理课程设计.doc
白色扁平化风格的灯饰灯具销售企业网站模板.zip
华豫佰佳组合促销视图.sql
白色大气风格的商务团队公司模板下载.zip
白色大气风格的VPS销售网站模板.zip