本节内容
1.java修饰符介绍
2.静态方法与实例方法
3.java参数的传递
4.可变参数
5.方法重载和构造方法
6.setter,getter和toString 方法
一、java修饰符介绍
1.在同一个文件里可以声明多个类,但是只能有一个public类
2.为了阅读性和更好的管理,通常只在一个文件里声明一个类。如果有多个类,通常会以内部类的形式存在(即在类里面在创建一个类)
3.属性/成员变量:记录一些数据 ,比如Card,Password等
4.如果一个类被protected修饰,表明在同一个包(package)里面,可以访问对象的这个属性,外部无法直接访问
5.public:公开的,公共的,在包的内部和外部都可以访问这个属性
6.private:私有的,只有在这个对象内部才能使用
7.属性一般在类里面是上部分,在类的外部通过 . 来访问属性
二、静态方法与实例方法(对象方法)
1.定义的区别:静态方法使用static修饰
2.意义的区别:①静态方法依附于这个类本身,比实例方法优先被加载,当这个类被加载到内存中时,这个方法就被加载了,而此时对象还不存在,所以只能用这个类来调用静态方法。
②对象方法依附于对象,必须创建这个类的一个对象,用对象来调用
3.static可以修饰变量(静态变量),方法(静态方法),内部类(静态内部类)
三、java参数的传递
java参数传递的机制是值传递,传递过去的是当前变量的一份拷贝。
如果传递的是一个基本数据类型的变量,那么通过对象的调用之后,这个变量的值不变
但如果传过去的是一个对象,那么在经过另外一个对象的调用后,该对象的值就会改变
public class Person {
public void eat(int a){
a++;
}
public void test3(Car car){
car.WheerCount=4;
}
}
public class MyClass {
public static void main(String[] args) {
int a=10;
Person p=new Person();
p.eat(a);
System.out.println("a="+a);
Car bz =new Car();
bz.WheelCount=8;
p.test3(bz);
System.out.println("WheelCount="+bz.WheerCount);
}
}
public class Car {
public int WheelCount;
}
输出结果:a=10;WheelCount=4;所以很明显a的值没有变,但是bz.WheerCount的值改变了。因为bz是一个对象,它和test3里的参数car指向的是同一个地方,而car指向的值变了,所以bz指向的值也变了。
四、可变参数
可变参数即参数个数不确定,相当于用数组来接收,定义方法如下
public void test4(String ...args){
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
调用方法如下,一般用的比较少,这里稍作了解即可
p.test4("jack","rose","merry");
五、方法重载和构造方法
1.方法重载:同一个类里面,方法名相同,参数不同(个数或类型)。方法的重载和返回值,修饰符没有关系。
2.构造方法:如何去创建一个对象。
系统会默认提供一个没有参数的构造方法。
构造方法的特点:名字与类名相同,没有返回值
解决的问题:让代码更简洁,在数据使用时能够保证有数据
public class Car {
public int WheelCount;
public int engine;
public int seat;
public Car(int count,int C,int s){
engine=C;
seat=s;
WheerCount=count;
}
}
如果我们定义了一个对象,就不必一个一个的给它初始化了,直接使用构造方法给它赋初值。明显比 p.WheelCount=4;等简洁的多
Car c3=new Car(10,30,22);
六、setter,getter和toString 方法
1.setter/getter方法:间接访问private修饰的成员变量
this:访问当前对象的某一个成员变量
按住快捷键ALT +insert 就可以直接使用setter和getter方法,选择你要的需要这种方法的变量即可。一般都把以下这段代码放在最底下
//set方法
public void setName(String name){
this.name=name;
}
//get方法
public String getName(){
return name;
}
tips:按住ALT+insert 然后选择constructor就可以直接创建一个构造函数,选择你要传入的构造函数的参数即可。构造方法一般放在属性的后面。
public Person(String name, int money, String address) {
this.name = name;
this.money = money;
this.address = address;
}
2.toString 方法:当使用print输出一个对象时,就会去这个对象内部找toString方法
按住ALT+insert键,选择toString 方法,一般会全选所有变量,然后就会自动生成以下代码
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", money=" + money +
", address='" + address + '\'' +
'}';
}
这样在主类里面直接输出p就不会报错
System.out.println(p);
输出为
Person{name='jack', money=200, address='null'}
欧克,以上就是我们今天的全部内容了,疫情期间,希望大家学的开心,good拜。
网友评论