/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*/
1、什么是类
类是构造对象的模板与蓝图。所有的代码都将包含在类当中。
2、什么是对象
对象是像数据结构一样具有状态和行为的容器。在一个类中可以构造多个对象。
3、类的关键词
类的关键词是:class。
4、类的基本构造
public class Aclass{}
在声明一个类的时候可以有0个或多个修饰符。类的标识符也就是我们通常说的类名,其应该是一个有效的通俗易懂的单词。类当中的组件完全由用户自定义,通常是由数据域、方法组成。
案例
public class Person {//属性 成员变量:在类里面 方法外面定义 并且不加static修饰符 创建对象以后 才会分配内存空间 并且每个对象都有自己的一份成员变量
//成员变量定义好以后 有默认值 String null int 0 char '' float 0.0 boolean false
String name;
int age;
char sex;
float h;
//每个类会有一个默认的构造函数,但如果自己定义了构造函数 则默认的构造函数会被覆盖
//特点:构造函数没有返回类型的
// 构造函数的名字和类名相同
// 可以有多个构造函数
// 构造函数是在new关键字后调用的 不能用对象名调用
public Person() {
// TODO Auto-generated constructor stub
System.out.println("55555");
}
//构造函数的重载: 方法名相同 参数列表不同 参数列表不同:参数个数不同或参数类型不同
public Person(String name,int age,char sex,float
{
//在类内部访问成员变量的时候 用this this:指的是当前对象
this.name=name;
this.age=age;
this.sex=sex;
this.h=h;
}
//构造函数如果传参 一般是用来给成员变量赋初始值的
public Person(String name)
{
this.name=name;
}
//行为 成员方法 在类内部定义 不加static的方法 创建对象以后 才会分配地址空间
//在类外 访问成员变量和成员方法的时候 需要用对象名来访问
void eat()
{
System.out.println("吃饭");
}
//函数可以传递参数
void eat(String food)
{
System.out.println(this.name+"吃"+food);
}
void sleep()
{
System.out.println("睡觉");
}
void dadoudou()
{
System.out.println("打豆豆");
}
}
5、类的之间的关系
依赖
uses a
依赖的目的是为了降低类与类之间的耦合度。
聚合
has a
其表现为引用类来使用。
继承
is a
作用:消除代码冗余。
特点:关系的紧密性,如父子关系。
package next.overrideinextendsplus;public abstract class Person {
private String name;
abstract String getTitle();
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}
class Teacher extends Person {
private final String title = "教师";
@Override
String getTitle() {
return this.title;
}
}
class Student extends Person {
private final String title = "学生";
@Override
String getTitle() {
return this.title;
}
}
class Doctor extends Person {
private final String title = "医生";
@Override
String getTitle() {
return this.title;
}
}
class PersonOutput {
public static void main(String[] args) {
System.out.println(new Teacher().getTitle() + "\t" +
new Student().getTitle() + "\t" +
new Doctor().getTitle());
}
}
6、创建对象的模板
1、数据域/字段
我们通常把在类当中定义的字段或者全局变量称之为对象的属性或者状态属性。
public class Student{private int Id;
private String name;
private
2 、方法
方法是由一组Java语句构成的,方法的主要作用是描述对象的行为,也可用来修改字段状态以及调用其他对象方法。
public class Student{private int Id;
private String name;
private String age;
public void learning(){
System.out.println("我在学习!!")
}
}
3、构造器
构造器又称构造函数是一个命名与类名一样的代码块,主要用于创建对象后初始化类的对象。与方法不同,构造函数没有返回值。
/*空载和满载*/public Student() {
}
public Student(int ID, String name, int age, int {
this.ID = ID;
this.name = name;
this.age = age;
Classname = classname;
}
4、初始化块
又称实例初始化器,用来初始化类的对象。
初始化块是在构造器执行之前调用执行的。
public class Test{{
System.out.println("123");
}
public Test(){
System.out.println("456");
}
}
5、静态块
静态块也称静态初始化器,和初始化块类似,它仅仅用于初始化一个类。实例初始化器对每个对象执行一次,而静态初始化器仅在类定义加载到JVM时为类执行一次。静态块在初始化程序执行之前执行。
public class Test{static{
System.out.println("123");
}
public Test(){
System.out.println("456");
}
}
更多请关注
https://edu.51cto.com/course/20203.html