一.什么是面向对象(基本概述)
1.是一种编程思维,简单来讲就是把生活中的事物放入到了代码中(本质上就是把事务转化为了数据)
2.面向过程也是一种编程的思想,但是什么东西都是自己造,Java对应的是面向对象编程,简单来说先有事物后又对象,事万物皆可以是对象,所谓的面向对象编程就是在面向数据编程
二.类和对象
类:一类事物的总和,抽象的,需要在后续的操作中被实例话,比如人这就是一个抽象的类下面包含了许多种类型的人比如男人,女人,老人,孩子。
//这种情况下我定义了一个人但是我不知道这个人的具体信息
public class people{
//比如每个人都有自己的名字
string name;
//动态行为,每个人都是需要吃饭的。定义一个方法
void eat(){
System.out.println("吃饭");
}
}
对象:就是类具体的实现,不是抽象的,而是具体的,例如:我们把这个人的名字叫做张三,那么就可以得到一个比较具体的一个人
三. 对象的创建
在Java中对象的创建方式一般是 new 类名() --------------->创建对象,创一个具体的人或事物
public class test{
public static void main(String args[]){
//实例化一个对象,相当于在模板复制一个复印件,成为一个具体的对象
//p 是变量名当然这个名字可以随便去,甚123,abc这种都可以只要你能够认识
people p = new people();
//给对象人取名字,叫做张三, 变量名.字段名
p.name = "张三";
//完成后就存在一个叫做张三的人
}
}
/*
设计一个人的模板,里面有名字这个属性
对象复制这个模板,对象里面的代码跟类里面的一模一样的,只是看不见,但是可以参照类里面来观看对象当中的代码
*/
public class people{
//这个属于人的一个属性每个人都有自己的名字
String name;
//这个方法叫做动态行为,所有人都是要吃饭的
void eat(){
}
}
四.构造方法
1.在Java中构造方法是一种特殊的方法,它用于创建并初始化对象。构造方法的名称与类名相同,并且没有返回类型(包括 void),它们在对象创建时自动调用
2.如果在一个类中没有定义构造方法,Java会提供一个默认的无参数构造方法。如果自定义了构造方法,则默认构造方法不再提供,需要显式定义无参数构造方法的话,就需要手动添加
/*
1、用来创建对象 通过main方法中 new Pig()调用类中无参构造方法
2、给对象赋初始值
*/
public class Test{
public static void main(string args[]){
//new Pig()调用类里面的无参构造方法创建对象,并且将对象的地址复制给p这个变量
People p1 = new People ();
//调用有参构造方法,并且赋值给字段
People p2 = new People ("张三");
System.out.println(p1);
System.out.println(p2);
}
}
public class People {
//字段属性
string name;
/*
构造方法,跟普通方法差不多,但是没有返回值也就是void那个
地方,方法名跟对象名一模一样
*/
//这是一个无参构造方法
public People (){
}
//这是一个有参构造方法
public People (string s){
//给类里面name字段赋值,从右往左赋值通过 =(赋值符号) 赋值
name = s;
}
//普通方法,因为有返回值 void ,可以跟类名一致(不建议这样用)
void People (){
}
@Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
'}';
}
}
打印出来后如下
People{name='null'}
People{name='张三'}
Process finished with exit code 0