今天对Java中方法的属性,方法中参数传递的机制以及变量进行了深入学习,并对隐藏和封装,包的概念,引入的概念进行了初步的了解学习。
1.方法的所属性:属于类(static修饰)或者属于对象的。
2.在程序的设计是要注重:用户的输入;输入内容进行封装;调用业务逻辑方法;输出结果。
3.我们在Java中要留意方法需要关心的要素:方法属于谁;方法的参数;方法的返回值。
方法定义的语法:
[修饰符] 返回值类型 方法名(形参列表) {
方法体
}
4.方法中参数传递的机制:参数的传递都是 值传递 ,在调用方法的时候,参数会被创造出一个副本,原本的值是不会改变的。
基本数据类型,也称为 值类型。
5.如果方法中传入的是基本数据类型,那么原变量的值是不会发生改变的,如果方法中传入的是引用数据类型(即类类型),那么传入方法中,如果对对象的相关属性进行了修改,那么原对象的相关属性也会发生改变。
6.根据变量定义所在位置的不同,可以定义:
成员变量是在类中定义的变量,用 static 修饰的为类变量,非 static 修饰的为实例变量 (对象变量)。
局部变量按照定义的位置分为,在方法内部定义的变量;在代码块中定义的变量,比如有循环体内部、判断体内部;形式参数:在方法定义的参数列表中定义的变量。(局部变量生命周期:从定义变量的位置开始,到定义位置所在花括号的结束位置结束。要注意一般在 for 循环中我们的初始化条件里面定义的变量,其生命周期在循环体内。)
例如:
public static void main(String[] args) {
System.out.println(i); // 有错误的
int i = 0;
if (i < 10) {
int j = i / 2;
System.out.println(j);
}
System.out.println(j); // 有错误的
for (int k = 0; k <= 10; k++) {
System.out.println(k);
}
System.out.println(k); // 有错误的
}
7.成员变量和局部变量的区别:
成员变量中是可以加入修饰符的,如 private、public、protected、static、final,在局部变量中是不可以加入修饰符的。
成员变量中的类变量是类被加载的时候初始化的,程序关闭时销毁。
成员变量中的实例变量是对象被创建出来的时候初始化的,在对象没有引用的时候被销毁。
8.变量的使用规则:
如果需要一个变量来描述一个类或对象的固有信息,比如人的年龄、性别、姓名这类,会把这些变量定义为成员变量中的实例变量;
如果一个变量只在方法体内或者代码块中有效,就没有必要定义为成员变量;
变量的命名:一般局部变量或者实例变量,使用驼峰的命名方式,但是首字母小写,如果是类变量,特别是常量,使用全部大写,两个单词之间用 _
分隔。
9.Java中封装的目的就是把成员变量隐藏起来,暴露方法来提供成员的修改和访问。
这里我们需要用到private(即私有类型)修饰符。
例如:
public class Student {
private String name; //隐藏成员变量
private int age;
private boolean sex;
public Student(String name, int age, boolean sex) {
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public void setName(String name) { //setter
this.name = name;
}
public String getName() {
return this.name + (this.sex ? "先生" : "女士"); //getter
}
}
- get + 首字母大写的属性名() :get 方法一般都是具有和属性数据类型一致的返回值,并且是没有形参的。
- set + 首字母大写的属性名(参数):set 方法一般都是具有和属性数据类型一致的方法参数,返回值一般是 void。
10.
类定义包的语法:
// 在类文件的第一行
package com.ntqingniao.j96.oop;
在不同的包中,是可以定义相同类名的类的。因为一个类的唯一性是包含包名的,比如 com.ntqingniao.j96.oop.Demo1
叫做类的全名。
在实际的企业开发中,是不允许出现没有包的类。
11.
访问控制修饰符:
访问控制修饰符能修饰的对象包括:成员变量、方法、构造器
访问控制修饰符,就是控制修饰的对象可以在什么样的范围(包)内被访问。
private | default | protected | public | |
---|---|---|---|---|
同一个类 | √ | √ | √ | √ |
同一个包 | √ | √ | √ | |
子类 | √ | √ | ||
全局范围 | √ |
- private:只能在当前类中被访问,一般用于对成员变量的修饰;
- default:没有定义修饰符就是 default;
- protected:可以在子类和本包中被访问,外部包不能被访问,在有一定业务意义的包中,可以定义类中成员变量是protected;
- public:一般定义在方法或者一些常量中,用于外部接口的访问。
- 在实际的开发中,大部分的场景使用 private 定义属性,public 定义方法。
7.