bilibili视频链接: 黑马程序员13天进阶教程
第1天
1.基础知识
目标:快速复习基础知识
面向对象思想概述:
- Java是一种面向对象的高级编程语言。
- 面向对象:是用代码去高度模拟现实世界的事物,从而让软件为任务处理业务,为人类服务。
- 高级语言:代码看起来很像人类的自然语言。
面向对象最重要的两个概念:类
和对象
。
- 类是相同事物共同特征的描述。类只是学术上的一个概念并非真实存在的,只能描述一类事物。
- 对象:是真实存在的实例。实例==对象。
- 结论:有了类和对象就可以描述万千世界所有的事物。必须先有类才能有对象。
定义类:
-
格式:修饰符 class 类名{
}
-
注意:
- 1.
类名的首字母建议大写
。满足驼峰模式。 StudentNameCode - 2.一个Java代码文件中可以定义多个类。但是按照规范还是建议一个Java文件定义一个类。
- 3.一个Java代码文件中,只能有一个类是用public修饰的,而且public修饰的类名必须成为当前Java代码的文件名称。
- 1.
类中的成分:有且仅有五大成分(五大金刚
)
修饰符 class 类名{
1.成员变量(Field): 描述类或者对象的属性信息的。
2.成员方法(Method): 描述类或者对象的行为信息的。
3.构造器(Constructor): 初始化一个对象返回。
4.代码块(后面学习的)
5.内部类(后面学习的)
}
类中有且仅有这五种成分,否则代码报错!
构造器:
格式:修饰符 类名(形参列表){
}
作用:初始化类的一个对象返回。
构造器的注意点:一个类默认自带一个无参数构造器
,但是如果写了有参数构造器那么默认的无参数构造器就消失。
构造器初始化对象的格式:类名 对象名称 = new 构造器; Student s = new Student();
面向对象的三大特征:封装,继承,多态。
封装的哲学思维:合理隐藏,合理暴露。
封装最初的目的:提高代码的安全性和复用性,组件化。
封装的步骤:
成员变量应该私有
。用private修饰,只能在本类中直接访问。提供成套的getter和setter方法
暴露成员变量的取值和赋值。
this关键字的作用:
- this代表了
当前对象的引用
。 - this关键字可以用在实例方法和构造器中。
- this用在方法中,
谁调用这个方法,this就代表谁
。 - this用在构造器,代表了构造器正在初始化的那个对象的引用。
示例:
package com.itheima._01知识回顾;
public class ClassDemo01 {
//类的五大成分
//1.成员变量(Field)
private String schoolName;
//2.成员方法(Method)
public String getSchoolName(){
return this.schoolName;
}
//3.构造器(Constructor)
public ClassDemo01(){
}
//4.代码块(后面学习)
{
schoolName = "黑马程序员";
}
//5.内部类(后面学习)
class Inner{
private String address;
}
System.out.println(123); //报错,因为类中有且仅有五大成分
public static void main(String[] args) {
//构造器返回类的一个对象
//无参构造器
People xiaoMing = new People();
xiaoMing.setName("小明");
xiaoMing.setAge(24);
System.out.println(xiaoMing); //包的权限名.对象的类型@(16进制地址) com.itheima._01知识回顾.People@6a5fc7f7
System.out.println(xiaoMing.getName() + ":" + xiaoMing.getAge()); //小明:24
//有参构造器 在初始化对象的时候为对象属性赋值
People xiaoHu = new People("小虎", 25);
System.out.println(xiaoHu); 包的权限名.对象的类型@(16进制地址) com.itheima._01知识回顾.People@73f792cf
System.out.println(xiaoHu.getName() + ":" + xiaoHu.getAge()); //小虎:25
}
}
class People {
private String name;
private int age;
public People(String name, int age) {
this.name = name;
this.age = age