前言
? ? ? ? 今天是学习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类的具体操作当时是听明白了的,但是自己实际动手操作还是很慢,虽然重在理解但是还是要下来自己经常练习才行。
自我感受
? ? ? ? 讲课下来还是能听的懂的,加上自己感兴趣,老师也讲的非常明白,就是自己要有更多的耐心和信心去学习去实践,在自己选的感兴趣的道路上一致走下去感觉非常好,我觉得我还要继续努力,还可以继续进步!加油!
特别鸣谢
学习内容参考多易教育零基础大数据入门课程,有兴趣的朋友可以自己搜索一下多易教育,希望我们能一起努力共同进步!
|