当前位置: 首页 > news >正文

Java(一)(引用类型的参数在传递,方法重载,面向对象编程基础)

基本类型和引用类型的参数在传递的时候有什么不同?

基本类型的值传递:参数传输存储的数据值

引用类型的值传递:参数传输存储的地址值

 传递数组名字的时候,传递的是数组的地址,change方法可以通过地址直接访问我们在堆内存中开辟的数组,然后改变数组,数组中的元素发生变化

方法重载

一个类中,出现多个方法的名称相同,但是他们的形参列表是不同的,那么这些方法成为方法重载了

注意事项:

(1)一个类中,只要一些方法的名称相同,形参列表不同,那么他们就是方法重载了,其他的都不管

(2)形参列表不同指的是:形参的个数,类型,顺序不同,不关心形参的名称

面向对象编程基础

简单的快速入门

开发一个一个的对象,把数据交给对象然后调用对象的方法来完成对数据的处理

1.我们先整一个对象

对象就是一种特殊的数据结构

package hello;public class student {
// 定义变量String name;double chinese;double math;
//定义方法  // 方法不用加staticpublic void printTotalScore(){System.out.println(name+"总成绩"+(chinese+math));}public void printAverageScore(){System.out.println(name+"平均成绩"+(chinese+math)/2);}
}

class也就是类,也称为对象的设计图(或者对象的模板)

2.调用对象  

创建对象:类名  对象名 = new 构造器()

对象的使用: 对象名.成员变量   对象名.成员方法

package hello;public class test {// 面向对象快速入门// 创建一个学生对象,封装阿衰的数据public static void main(String[] args) {student s1 = new student();s1.name = "阿衰";s1.chinese = 100;s1.math = 100;s1.printTotalScore();s1.printAverageScore();}
}

注意事项: 

1.类型建议用英文单词,满足驼峰模式,比如:Student,Car等

2.类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)

3.成员变量本身存在默认值,定义成员变量的时候也不需要赋初始值(应为不同的对象的属性一般是不一样的)

4.一个代码文件中,可以写多个class类,但是只能一个用public修饰,重点强调:public修饰的类型要称为代码文件名

5.如果某个对象没有对象引用它,则对象无法被操作了,该对象会成为所谓的垃圾对象

java中会有自动垃圾回收机制,不用担心浪费空间

this

this就是一个变量,可以用在方法中,来拿当前对象

具体用在哪?具体用在有参数构造器中的,同时也可以用在方法中

哪个对象调用这个方法,this就是哪个对象的地址

this:主要是来解决名称冲突的问题,下面的学生考试的成绩和录取的成绩250名字相互冲突了,所以在学生成绩前面加this,表示这个是学生的成绩

下面是this用在方法中

下面是this用在构造器中

构造器的使用

作用:初始化一个类的对象,并返回一个对象的地址

详细格式: 修饰符,类名(形参){......}

分类:(1)无参构造器:初始化一个类的对象,并返回一个对象的地址,默认值

(2)有参构造器:初始化一个类的对象,并返回一个对象的地址,同时指定值

调用: 类型 对象 = new 构造器();

啥叫构造器?我们在创建一个对象的时候,

student s1 = new student();后面有一个括号

这个括号会指定一个对象创建的一种方式

上面是无参数的构造器,我们上面在创建s1的时候没有指定()括号里面的参数,那就是按照无参数的构造器来创建对象的,类在设计的时候,如果不写构造器,java是会为类自动生成一个无参的构造器的

下面是有参数的构造器,这种构造器只要将参数传进来,就会自动指定好成员的属性

一旦有参数构造器,java就不会帮我们自动生成无参数的构造器了,所以建立自己写一个无参数构造器

封装

封装的规范:合理隐藏,合理暴露

我们可以将成员变量隐藏起来,然后设置一些方法,来进行一系列的操作

我们通过publicprivate 这两个关键字来控制隐藏和暴露

我们举个例子

我们应该调用里面的方法

这样做到合理暴露和合理隐藏

实体javaBean

什么是实体类

就是一种特殊形式的类,满足下面的两个要求

(1)这个类中的成员变量都是私有的,并且要对外提供相应的get...和set...方法

(2)类中必须要有一个公共的无参的构造器

package hello;public class student {// 1.必须私有成员变量,并为每个成员变量都提供get set方法private String name;private double score;
// 有参数构造器public student(String name, double score) {this.name = name;this.score = score;}private double score;
// 2. 必须为类提供一个公共的无参数构造器public student() {}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}

我们创建上面的实体类对象

package hello;public class test {public static void main(String[] args) {student s1 = new student();s1.setName("阿衰");s1.setScore(99);System.out.println(s1.getName());System.out.println(s1.getScore());}
}

区别成员变量和局部变量的区别

1.类中位置不同:成员变量(类中和方法外)  , 局部变量(常见于方法中)

2.初始化不同:成员变量(有默认值,不需要初始化赋值  整型是0,浮点型是0.0,引用类型是null,布尔型是false),局部变量(没有默认值,使用之前必须完成赋值)

3.内存位置不同:成员变量(存在于堆内存),局部变量(栈内存)

4.作用域不同: 成员变量(整个对象),局部变量(在所归属的大括号中)

5.生命周期不同:成员变量(与对象同生共死),局部变量(方法调用而生,方法结束而死)

http://www.lryc.cn/news/234432.html

相关文章:

  • Vue第1天:特性概览
  • C++语法基础知识面经汇总
  • AM@幂级数性质@幂级数和函数求解
  • PHP低版本安全问题
  • 结构体——C语言初阶
  • 基于django电影推荐系统
  • 【问题处理】WPS提示不能启动此对象的源应用程序如何处理?
  • UE 程序化网格 计算横截面
  • 【Spring】IoC容器的一些总结与补充
  • Java GUI实现五子棋游戏
  • Python 集成 Nacos 配置中心
  • Debian 11 更新 Node.js 版本
  • python 对图像进行聚类分析
  • 程序员导航站
  • BIO、NIO、AIO三者的区别及其应用场景(结合生活例子,简单易懂)
  • 深度学习YOLO图像视频足球和人体检测 - python opencv 计算机竞赛
  • 系列七、JVM的内存结构【堆(Heap)】
  • 什么是Selenium?如何使用Selenium进行自动化测试?
  • 【蓝桥杯 第十五届模拟赛 Java B组】训练题(A - I)
  • 【数据结构】手撕双向链表
  • 性能测试 —— Jmeter接口处理不低于200次/秒-场景
  • Qt中使用QNetworkAccessManager类发送https请求时状态码返回0
  • Linux - 物理内存管理 - memmap
  • Python爬虫动态ip代理防止被封的方法
  • 01Urllib
  • python爬取酷我音乐 根据歌名进行爬取
  • 【深度学习】吴恩达课程笔记(五)——超参数调试、batch norm、Softmax 回归
  • 腾讯云轻量级服务器和云服务器什么区别?轻量服务器是干什么用的
  • 解决:虚拟机远程连接失败
  • SpringBoot项目集成发邮件功能