1、一个类可以包含多个字段(field),field的两种属性
- public 外部可以直接操作
- private 拒绝外部访问,需要通过方法(method)来间接访问
2、方法
public 方法
- 暴露给外部的可以操作的函数
private方法
- 类中调用,外部无法调用
this变量
- this是一个隐含的变量,始终指向当前的实例,用法:
this.field
ps:如果有局部变量和字段重名,局部变量的优先级更高
class Example{
private String name;
public void Set(Stirng name){
this.name = name //如果没有this,name就是函数Set里面的局部变量,而不是类里面的字段
}
}
参数类型
-
固定参数
可以包含0个到n个,给函数传参是必须保证类型一致
-
可变参数
- 用
类型... 参数名
定义,相当于数组 - 可变参数没办法接受
null
,传入null会被识别成0个参数,即传入一个空数组
class Example{ private String name; public void Set(String... names){//Set函数即可以接受一个可变参数,可以写成 String[] names this.name = names; } }
参数绑定
-
基本类型参数的传递,是调用方变量值的拷贝,双方后续操作互相不影响
-
引用类型参数的传递,调用方变量和接收方变量指向同一个对象,任意一方对于变量的修改都会影响这个对象
java中String类型是不可变的,一旦定义,无法修改,当发生改变时,会重新分配内存,即生成一个新的内存地址
- 用
3、学后一题
一个类A有一个成员变量v有一个初值100。定义一个类对A类的成员变量v进行猜。如果大了则提示大了小了则提示小了。等于则提示猜测成功。
package Object;
import java.util.Scanner;
/**
* @className:method;
* @time:2022-04-13-9:18;
* @author:Lee Ye;
* @description:这是一个java示例;
*/
public class method {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字");
int n = input.nextInt();
A a = new A();
while(n != a.v)
{
if ( n < a.v)
System.out.println("猜小了");
else
System.out.println("猜大了");
System.out.println("请重试");
n = input.nextInt();
}
if (n == a.v)
System.out.println("猜对了");
return ;
}
}
class A{
public int v = 100;
}