今天是学习Java语言的第7天,提前看过课件知道今天讲的更多的是一种思想,老师今天讲的是面向对象,说今天是面向对象的第一天。前边几天上来讲得就是Java语言的具体学习内容,今天说是学习Java语言的一种思想才感觉刚刚迈入大门,那接下来就是继续努力加油啦!
1.面向对象
面向过程:实现一件事情去关注每一步的过程,每一步都去亲历亲为
面向对象:实现一件事情去关注具备实现这个功能的对象
面向对象是一种编程思想,它是基于面向过程的。将功能(方法)封装到一个类中,当想实现某件事时不去思考具体怎么实现这个功能,而是考虑哪个类具备这个功能。
类是对一类事物的描述,是抽象的。
对象是一类事物的实例,是具体的。
类是对象的模板,对象是类的实体。
面向对象的好处:
①更符合人们的思考习惯
②将复杂的问题简单化
③从“执行者”变为“指挥者”
2.类与对象
类:类是现实事物的抽象描述,现实事物具备属性和功能。类使用类的成员变量来描述事物的属性,使用类的成员方法来描述事物的功能
对象:通过类的抽象描述,创建出来的具体的实例
类的定义格式:
public class 类{
//成员变量
//成员方法
}
类的定义格式举例(以Student类举例):
public class Student { //成员变量 String name;//姓名 int age;//年龄 //成员方法 //学习的方法 public void study() { System.out.println("好好学习,天天向上"); } //吃饭的方法 public void eat() { System.out.println("学习饿了要吃饭"); } }
创建对象:
类名 对象名 = new 类名();
访问对象:
对象名.成员变量;
对象名.成员方法();
对象的使用格式举例:
public class Test01_Student { public static void main(String[] args) { //创建对象格式:类名 对象名 = new 类名(); Student s = new Student(); //直接输出成员变量值 System.out.println("姓名:"+s.name); //值为null System.out.println("年龄:"+s.age); //值为0 //给成员变量赋值 s.name = "张三"; s.age = 18; //再次输出成员变量的值 System.out.println("姓名:"+s.name); //值为张三 System.out.println("年龄:"+s.age); //值为18 //调用成员方法 s.study(); //定义的Student类内的方法, "好好学习,天天向上" s.eat(); // 定义的Student类内的方法,"学习饿了要吃饭" } }
3.局部变量和成员变量的区别:
①在类中的位置不同【重点】
成员变量:类中,方法外
局部变量:方法中或者方法声明上(形式参数)
②在内存中的位置不同(了解)
成员变量:堆内存
局部变量:栈内存
③生命周期不同(了解)
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
④初始化值的不同【重点】
成员变量:有默认值
局部变量:没有默认值。必须先定义,赋值,最后使用
⑤作用范围不一样【重点】
成员变量:类中
局部变量:方法中
下面简单举例一下:
public class Car{
String color;//此处即是成员变量
public void drice{
int speed = 40;//此处即是局部变量
System.out.println("汽车时速是:"+speed);
}
}
变量的就近访问原则:
先找局部变量,如果没有找到局部变量再去找成员变量,即局部变量>成员变量
4.封装
封装的步骤:将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。
下面先介绍两个关键字,private和this:
private:
①private是一个权限修饰符,代表最小权限。
②可以修饰成员变量和成员方法。
③被private修饰后的成员变量和成员方法,只在本类中才能访问。
使用格式:
private 数据类型 变量名;
public class Student { private String name; private int age; }
this:
this一般在方法内使用,代表当前对象的引用。哪个对象调用这个方法,哪个对象就是当前对象,this可以区分成员变量和局部变量
使用格式是:this.成员变量名;
4.构造方法
当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值,构造方法可以重载。
构造方法有空参构造和满参构造,一般情况满参构造都是为了给成员变量赋值。
定义格式:
public 类名(参数){
}
注意:一个类中如果一个构造方法都没定义,java会默认提供一个空参构造,如果定义了任何一个构造方法,java都不会提供空参构造了
4.JavaBean类
一个类如果具备私有的成员变量,空参的构造方法,get/set方法,就可以称这个类是一个JavaBean类
JavaBean类的格式:
public class ClassName{
//成员变量
//构造方法
//无参构造方法【必须】
//有参构造方法【建议】
//成员方法
//getXxx()
//setXxx()
}
public class Student { //成员变量 private String name; private int age; //构造方法 //空参构造 public Student() {} //满参构造 public Student(String name,int age) { this.name = name; this.age = age; } //成员方法 publicvoid setName(String name) { this.name = name; } public String getName() { return name; } publicvoid setAge(int age) { this.age = age; } publicint getAge() { return age; } }
详细的讲课内容的同学可以去听听多易教育老师的讲课视频,老师肯定是讲的比我多比我要具体,欢迎大家一起讨论~
今天的讲课内容稍微有点懵,对于最后视频讲课的封装没有听的很明白,下来仔细研究了一下讲义再结合着老师的讲课才弄明白。JavaBean类的具体操作当时是听明白了的,但是自己实际动手操作还是很慢,虽然重在理解但是还是要下来自己经常练习才行。
讲课下来还是能听的懂的,加上自己感兴趣,老师也讲的非常明白,就是自己要有更多的耐心和信心去学习去实践,在自己选的感兴趣的道路上一致走下去感觉非常好,我觉得我还要继续努力,还可以继续进步!加油!
学习内容参考多易教育零基础大数据入门课程,有兴趣的朋友可以自己搜索一下多易教育,希望我们能一起努力共同进步!