首页 > 代码库 > 第7章 类和对象
第7章 类和对象
1.什么是类和对象
1.1对象的概念
万物皆是对象,所有客观存在的物体都是对象
1.2什么是面向对象
把数以及对数据的操作方法放在一起,作为一个相互依存的整体,这个整体就是对象
1.3类
类是模子,是对象所有属性和方法的一个抽象集合
类的特点:
类是对象的类型,即对象的类型是类
具有相同属性和方法的一组对象的集合
1.4什么是对象的属性
属性——对象具有的各种特征,注意不是类哦
每个对象的每个属性都拥有特定值
例如一个手机,手机的大小,重量等就是手机这个对象的属性
1.5什么是对象的方法
方法——对象执行的操作
例如,手机这个对象有打电话,发短信,上网等一些方法
1.6类与对象的关系/区别
类是对象的抽象概念,是抽象的一个模板,对象是根据类来生成的。我们定义一个类,实际使用过程中,要创建一个对象,来操作这个对象,不能直接对类进行操作
2.如何定义Java中的类
2.1类的组成
一个类是由属性和方法构成的
所有的类都是以class为组织单元
2.2定义一个类的步骤:
a.定义一个类名
b.编写类的属性,属性可以有多个或者没有
c.编写类的方法,
1 public class HelloWorld{ 2 public static void main(String[] args) { 3 //定义类的属性 4 String url_China = "甘美丽和卢小帅"; 5 String url_English = "www.ganhuanmin.top"; 6 //定义类的方法 7 public viod printout(){ 8 System.out.println(url_China); 9 System.out.println(url_English); 10 } 11 12 13 } 14 }
3.如何使用Java中的对象
使用对象的步骤:
3.1步骤1:创建对象
方法:类名 对象名 = new 类名();
HelloWorld hello = new HelloWorld();
3.2步骤2:使用对象
引用对象的属性:对象名.属性
hello.url_China=”幸福时光”;//给url_China赋值
引用对象的方法:对象名.方法名();
hello.printout();//调用方法
4.Java中的成员变量和局部变量
1.成员变量:
在类中定义,用来描述对象将要有什么属性
成员变量能够在该类的所有方法中使用,也能在与该类相关联的类中使用
2.局部变量:
在类的方法中定义,在方法中临时保存数据
局部变量只能在定义他的那个方法中使用,如果你是在方法1中定义,就只能用在方法1中,方法2是无法使用这个变量的
3.成员变量和局部变量的区别:
a.作用域不同
局部变量的作用域仅限于定义它的方法
成员变量的作用域在整个类内部都是可见的
b.初始值不同
Java会给成员变量一个初始值
Java不会给局部变量赋予初始值
c.局部变量同名问题
在同一个方法中,不允许有相同的局部变量
在不同的方法中,可以有相同的局部变量
d.优先级
两类变量同名时,局部变量具有更高的优先级,也就是遵循就近原则
5.Java中的构造方法
5.1什么是构造方法
创建一个对象时:
HelloWorld hello = new HelloWorld();
1.使用new+构造方法, 创建一个新的对象,这也是构造方法唯一的一个功能
2.构造方法是定义在Java类中的一个用来初始化对象的方法,构造方法与类名相同且没有返回值。
3.如果我们没定义构造方法,Java自动补充一个默认的构造方法
4.构造方法的语句格式
使用的时候用public加类名就可以,不用加构造方法
其实我们创建对象的时候执行的就是构造方法
5.当没有制定构造方法时,系统会自动添加无参的构造方法
6.当有指定构造方法,无论是有参,无参的构造方法,都不会自动添加无参的构造方法
7.构造方法的重载:方法名相同,但参数不同的多个方法,调用时会自动根据不同的参数选择相应的方法
8.构造方法不但可以给对象的属性赋值,还可以在赋值的时候对值进行判断,给属性赋一个合理的值
6.static的使用之静态变量
被static修饰的成员称为静态成员或者类成员,该成员在类中被定义,但是将被该类所有的对象拷贝一份,所有的对象都将自动拥有这个属性。
使用static可以修饰变量、方法、代码块
调用这个static变量时,有两种不同的调用方法:
1.创建一个对象,根据对象.属来调用
2.可以直接使用类名调用
用个图片说明:
需要注意的是,static修饰的变量称为静态变量,当这个静态变量在一个对象里面被改变的时候,不会改变另外一个变量里面的值
7.static的使用之静态方法
当一个方法被static修饰之后,则跟静态变量一样,成为一个静态方法,这个方法被所有的对象共享,即根据这个类创建的对象都自动带有这个方法。
调用方式也是有两种,同上面静态变量是一样的。
第一种是直接通过类名.方法名()调用
第二种是先创建对象,然后通过对象.方法名()调用
不过静态方法里面有一些调用是需要注意的:
1.静态方法里面只能调用静态方法,不能直接调用非静态方法,因为静态方法和静态变量都是对象共享,都默认含有,但是非静态方法只能先创建对象,然后通过对象调用。
2.普通成员方法中,可以直接访问静态变量和非变量
3.静态方法不能直接调用非静态方法,需要通过对象来访问非静态方法
8.static使用之静态初始化块
初始化块是对构造方法的一个补充,可以将一些需要初始化的变量值放在这个地方,在实例化的时候会执行。
如果在初始化块前加上static,则成为一个静态初始化块,这个块只能给静态变量赋值,不能初始化普通的成员变量
静态初始化块只会在创建对象的时候初始化一次,普通初始化块不是一次
例子:
1 public class HelloWorld { 2 3 String name; // 声明变量name 4 String sex; // 声明变量sex 5 static int age;// 声明静态变量age 6 7 // 构造方法 8 public HelloWorld () { 9 System.out.println("通过构造方法初始化name"); 10 name = "tom"; 11 } 12 13 // 初始化块 14 { 15 System.out.println("通过初始化块初始化sex"); 16 sex = "男"; 17 } 18 19 // 静态初始化块 20 static { 21 System.out.println("通过静态初始化块初始化age"); 22 age = 20; 23 } 24 25 public void show() { 26 System.out.println("姓名:" + name + ",性别:" + sex + ",年龄:" + age); 27 } 28 29 public static void main(String[] args) { 30 31 // 创建对象 32 HelloWorld hello = new HelloWorld(); 33 // 调用对象的show方法 34 hello.show(); 35 36 } 37 }
第7章 类和对象