当前位置 : 主页 > 编程语言 > java >

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与

来源:互联网 收集:自由互联 发布时间:2022-07-13
4.5 方法参数 参数的两种类型:基本类型和引用类型 参数内外的区别:实参与形参 例子:基本类型方法形参修改实参值(失败) public class Main { public static void main ( String [] args ){ Main s


4.5 方法参数

参数的两种类型:基本类型和引用类型

参数内外的区别:实参与形参

例子:基本类型方法形参修改实参值(失败)

public class Main {
public static void main(String[] args){
Main solution = new Main();
int x = 5;
solution.changeX(x);
System.out.println(x);
}

private void changeX(int x){
x = 3;
}

}

 

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_构造器

例子:方法内引用类型的字段修改值(成功)

public class Main {
public static void main(String[] args){
Main solution = new Main();

MyClass c = solution.new MyClass();
System.out.println(c.studentCnt);
solution.changeClass(c);
System.out.println(c.studentCnt);
}

private void changeClass(MyClass c){
c.studentCnt = 10;
}

class MyClass{
int studentCnt=5;
}
}

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_核心技术_02

例子3:修改对象引用(失败)

public class Main {
public static void main(String[] args){
Main solution = new Main();

MyClass c = solution.new MyClass();
System.out.println(c.studentCnt);
solution.changeClass(c);
System.out.println(c.studentCnt);
}

private void changeClass(MyClass c){
c=new MyClass();
c.studentCnt=7;
}

class MyClass{
int studentCnt=5;
}
}

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_核心技术_03

 

 

总结:

1. 方法内不能修改基本类型传入参数的值

2. 方法内可以修改引用类型内的字段值

3. 方法内不能修改应用类型传入的参数引用

4.6 构建对象

 4.6.1 重载

GregorianCalendar c = new GregorianCalendar();
GregorianCalendar c2 = new GregorianCalendar(2099,Calendar.DECEMBER,31);

类似上述代码这样, 同名,不同参数的方法或者构造,叫做重载。

重载要求:同名、不同参数长度或者不同参数类型的构造器或者是方法,注意不能通过形参的名称进行匹配,必须是类型。

4.6.2 全局变量的默认值

全局变量和局部变量不同,类型具有默认值。整型=0,浮点型=0,布尔=false,字符=空格(ascii码为0),引用类型具有默认值null。

public class Main {
byte mByte;
short mShort;
int mInt;
long mLong;
float mFloat;
double mDouble;
boolean mBoolean;
char mCharacter;
Object mObject;
public static void main(String[] args){
Main solution = new Main();
System.out.println(solution.mByte);
System.out.println(solution.mShort);
System.out.println(solution.mInt);
System.out.println(solution.mLong);
System.out.println(solution.mFloat);
System.out.println(solution.mDouble);
System.out.println(solution.mBoolean);
System.out.println(solution.mCharacter);
System.out.println(solution.mObject);
}
}

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_构造器_04

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_开发语言_05

4.6.3 默认构造器

 类在没构造器的情况下,系统会默认给类加一个无参构造器,有构造器的情况,则不会有默认构造器。

public class Main {
public static void main(String[] args){
Main solution = new Main();
A a = solution.new A();
B b = solution.new B(3);
B b2 = solution.new B();

}

class A{}
class B{
int a;
B(int a){
this.a = a;
}
}
}

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_java_06

 4.6.4 显示初始化全局变量

《Java 核心技术 卷1》 笔记 第四章:类与对象(5) 形参与实参 构造器的默认值与默认构造_核心技术_07

 全局变量初始化三种方式:

1. 直接赋值

2. 初始化块

3. 构造器

其中执行顺序为直接赋值->初始化快->构造器

   系列内容:

《Java 核心技术 卷1》 笔记:第一章 Java程序设计概述

《Java 核心技术 卷1》 笔记:第二章 Java程序设计环境

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(1)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(2)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(3)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(4)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(5)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(6)

《Java 核心技术 卷1》 笔记:第三章 Java基本的程序设计结构(7)大数处理、数组、多维数组、控制台传参

《Java 核心技术 卷1》 笔记 第四章:类与对象

《Java 核心技术 卷1》 笔记 第四章:类与对象(2) GregorianCalendar 与 类的基本组成

《Java 核心技术 卷1》 笔记 第四章:类与对象(3) 构造器全局私有方法

喜欢的话,点个赞吧~!平时做题,以及笔记内容将更新到公众号。

关注公众号,互相学习:钰娘娘知识汇总

网友评论