今天是学习java 的第一天,我是一个大专的毕业生,只有最基础的编程知识,下面开始我的java学习之旅:
类和对象
类是指某一类事物共同的特征,例如,男人、女人都属于人这个类,狗、猫都属于动物这个类,他们都有共同的特征。可以说类是抽象的。
对象是指某一个事物的具体体现,对象里面包含成员变量(对象属性),成员方法(对象行为)等等,比如有一个人类的对象,他有名字,性别,年龄,这3个就是对象的属性,而人类这个对象有很多行为,比如吃饭,睡觉等一些行为,而每个人的行为都是不一样的,但是却有共同的特征,所以我们可以把共同特征的不同对象划分到一个类中。
可能有的人会觉得只要有共同的行为和属性的对象就可以划分为一个类,但是类和对象的关系必须要满足is a的逻辑关系,不能说人类中有狗对象,这个是错误的,必须要符合实际中的逻辑关系。
类中成员的介绍
类的修饰关键字是class,在class前面的是权限修饰符,权限修饰符有4种,我们目前学到的只有 public修饰符,public 表示这个类是公用的,可以被别的类调用使用。
类的定义格式:
public class Person{ //人类
}
关于定义类有一点需要注意:一个java文件中可以写多个类,但是只能定义一个public 修饰的类。
成员变量
在一个类中可以定义成员变量,这个变量就是对象的属性,在类中,你可以把所有对象共有的属性定义到成员变量里面,这样就可以区分对象。例如,人的类中,你可以定义属性为姓名(name)、年龄(age)、性别(sex),这样,你创建的每一个对象都有自己的名字和年龄,性别。
在定义成员变量的时候,也可以使用权限修饰符,例如public,它代表的是这个成员变量是公共的,对象可以直接调用,但是在我们的开发中,我们在定义成员变量的时候,我们通常不希望别人随意修改对象的属性,因此,我们在开发中使用的标准类中,通常会使用private来修饰成员变量,private表示该成员变量是私有的,只能在本类中访问,这样就可以防止别人随意通过对象直接调用修改对象的属性。
public class Person{ //人类
private String name; //私有属性:姓名(字符串类型)
private int age; //私有属性:年龄(整数类型)
private char sex; //私有属性:性别(字符类型)
}
构造方法
构造方法主要是指当你创建这个类的对象时,你想让这个对象的初始化值为多少,比如人这个类中创建对象,你第一次创建的时候是直接定义姓名、年龄、性别这三个属性,还是还不确定这个对象的这三个属性。如果不确定,那就可以先不定义对象的属性,创建一个没有具体参数的对象,如果第一次创建确定对象的参数,可以在创建的时候直接赋值(给属性具体的值).
所以,在创建对象的时候有2种情况,根据这两种情况java给出了2种构造方法,第一种是无参构造,第二种是有参构造。
public class Person{ //人类
private String name; //私有属性:姓名(字符串类型)
private int age; //私有属性:年龄(整数类型)
private String sex; //私有属性:性别(字符类型)
public Person(){ //无参构造
}
public Person(String name,int age,String sex){ //有参构造(满参)
this.name = name; //传入的参数赋值给调用构造方法的对象
this.age = age;
this.sex = sex;
}
}
构造方法种的this指的是引用对象,this的作用是谁调用就是谁,在有参构造方法中,传入了3个参数,但是这3个参数的名字和类定义的成员变量名一致,所以在构造方法中使用this是为了区分方法的参数和成员变量,this.参数名指的是哪个对象调用就是哪个对象的属性,所以构造方法这里使用了this关键字来指向对象,this还有一个作用就是可以调用本类的构造方法,所以这里用this就是为了区分方法参数和成员对象。
public class Test01 {
public static void main(String[] args) {
Person p = new Person (); //创建一个人类对象,参数没有,这个调用的是上面的无参构造。
Person p1 = new Person ("张三", "20", "男"); //创建另一个人类对象,参数传入了3个,这里调用的是有参构造。
}
}
上述代码创建了2个人类对象,p是第一个人类对象,没有传入参数,所以p的成员属性都是默认值,String的默认值是"",空值,int的默认值的0,所以p的name = “”,age = 0,sex = “”,而第二个对象是p1,p1在创建的时候传入了三个参数,所以在创建完后下次调用对象p1的时候,p1的成员属性是name = “张三”,age = 20,sex = “男”,这就是构造方法的使用,就是为了创建对象的时候初始化值,也就是给对象的3个属性赋值。
this关键字注意事项:
1)this调用本类的构造方法要求必须位于当前构造方法的第一行
2) this调用本类的构造方法不支持递归调用
set和get方法
从上面的代码可以看出来,这个无参构造是没有赋值的,但是在别的类中又不能直接用对象名调用成员变量名赋值,因为private修饰的成员变量只能在本类中使用,在其他的类是无法使用的,所以我们就需要get和set方法来给对象的成员变量(属性)赋值,get方法是查看该对象的属性,而set是修改该对象的属性,这2个方法一般是一起使用的,在标准类中,get和set方法是必须要有的。
//get和set方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String color) {
this.sex = sex;
}
set方法我们可以在对象调用无参构造的时候使用set方法给对象的属性赋值,格式是直接使用对象名.set方法来给对象的属性赋值。
public class Test01 {
public static void main(String[] args) {
Person p = new Person (); //创建一个人类对象,参数没有,这个调用的是上面的无参构造。
p.setName = "李四";
p.setAge = 20;
p.setSex = "男";
}
}
get方法是当我们创建好对象的时候查看该对象的属性值,格式是对象名.get方法直接进行查看属性值。
public class Test01 {
public static void main(String[] args) {
Person p = new Person (); //创建一个人类对象,参数没有,这个调用的是上面的无参构造。
Person p1 = new Person ("张三", "20", "男");
p.setName = "李四";
p.setAge = 20;
p.setSex = "男";
System.out.println("p1对象的姓名:" + p1.getName); //输出调用对象p1的get方法,就可以查看对象p1的属性name的值。
System.out.println("p1对象的年龄:" + p1.getAge); //输出调用对象p1的get方法,就可以查看对象p1的属性age的值。
System.out.println("p1对象的性别:" + p1.getSex); //输出调用对象p1的get方法,就可以查看对象p1的属性sex的值。
}
}
好了,今天就学习了这些知识,我是一个正在努力学java的小白,希望各位编程大佬帮我带带我。。。这些知识点也不知道写的对不对,如果有不对的地方,可以纠正下我,谢谢各位大佬,大神。。。。