Day07_面向对象第二天
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day07_面向对象第二天相关的知识,希望对你有一定的参考价值。
1、构造方法(掌握)
1、构造方法的特点(掌握)
A、方法名必须和类名保持一致
B、没有返回值类型并且没有具体的返回值
2、构造方法的作用(掌握)
给对象的属性初始化
3、注意事项(理解)
A、如果没有明确给出构造方法,那么系统会默认给出一个无参构造方法
B、只要明确给出构造方法,系统将不在提供无参构造(以后必须手动给出无参构造,因为可以避免很多错误发生
C、构造方法的重载体现在参数列表不同,构造方法与其他方法没有关系
4、给私有的成员变量赋值的方式(掌握)
A、通过set方法,推荐使用
B、通过构造方法
C、在定义成员变量的时候手动赋值(private String name = “yongliang”;)
D、通过反射中的Field类的对象给对象的属性赋值(以后学)
5、一个类中构造方法应该定义几个?
这个没有具体的规定,自己想写几个就写几个,看需求。可以一个都不写,系统会提供一个默认的,我一般都会定义一个无参构造,和一个有参构造,该有参构造初始化该类中的所有成员变量
2、构造方法和setter方法对比(了解)
1、区别
构造方法是在创建对象的时候给成员变量赋值,并且只能赋值一次
set方法是在创建完对象以后对成员变量的值进行修改,或者赋值,可以多次
最终目的:都是给成员变量赋值,只不过实现方式不一样
3、面向对象之标准代码(掌握)
要求:闭着眼睛写出来
定义几个构造方法是不确定,需要具体需求,我们标准代码只需定义一个无参的,和所有参数的即可。需要时在添加
/**
*
一个类的代码分布图:
属性
构造方法
成员方法
get方法和set方法
*/
publicclassStudent{
/** 姓名 */
privateString name;
/** 年龄 */
privateint age;
publicStudent(){
}
publicStudent(String name,int age){
super();
this.name = name;
this.age = age;
}
/**
* 获取姓名
*
* @return name 姓名
*/
publicString getName(){
return name;
}
/**
* 设置姓名
*
* @param name
* 姓名
*/
publicvoid setName(String name){
this.name = name;
}
/**
* 获取年龄
*
* @return age 年龄
*/
publicint getAge(){
return age;
}
/**
* 设置年龄
*
* @param age
* 年龄
*/
publicvoid setAge(int age){
this.age = age;
}
}
测试类
publicclassTest{
publicstaticvoid main(String[] args){
//通过无参构造创建对象,并给成员变量赋值
Student zs =newStudent();
zs.setName("张三");
zs.setAge(13);
//通过有参构造创建对象,并给成员变量赋值
Student ls =newStudent("李四",14);
//调用对象的方法
System.out.println(zs.getName()+"----"+zs.getAge());
System.out.println(ls.getName()+"----"+ls.getAge());
}
}
4、static关键字概述
1、概述1、static 可以修饰成员变量和成员方法2、被static修饰的成员有一个最大的特点,就是可以被该类下所有的对象共享2、什么时候用多个对象共享某一数据的时候,我们就把这个数据用static修饰3、特点(掌握)1、被static修饰的内容随着类的加载而加载,优先于对象存在2、可以直接通过类名调用3、被该类下所有对象共享4、注意事项1、在静态方法中是没有this关键字,因为静态是随着类的加载而加载。而this是对象创建才存在的2、静态方法只能访问静态成员变量和静态成员方法 一句话 静态只能访问静态3、静态内容可以通过对象调用,也可以通过类名调用。推荐使用类名调用
5、今天必须掌握的内容。以及常见的笔试题和面试题(学完这个就可以放心学习后面的知识了)
1、谈谈构造方法
从构造方法的特点和作用两方面说即可
2、谈谈默认初始化,显示初始化,构造方法初始化的顺序
3、谈谈给私有的成员变量赋值的方式
5、谈谈你对static的理解
从特点和注意事项两方面说即可
6、今天的标准代码必须敲熟
以上是关于Day07_面向对象第二天的主要内容,如果未能解决你的问题,请参考以下文章