2.1JAVA基础-面向对象-类和对象-构造函数

一、面向过程编程

就是站在过程的角度思考问题,我们之前学的只是都是面向过程编程,强调我们怎么去做:

遇见问题-->分析问题-->解决问题,完全都是我们自己写的过程,也就是先干嘛后干嘛。

这种设计思想的可维护性较低,扩展性较差。

二、面向对象编程

2.1一种新的编程思想

,就是站在管理着的角度思考问题,遇见问题-->让谁来做-->解决问题。

面向对象的最小程序单位是类,我们将一个个的对象封装在类里面,必须先有类再有对象,然后需要谁就把它拿出来用就行了。

 示例:

//创建一个狗的类,里面定义一个方法
public class Dog {
     void eat(){
        System.out.println("狗可以吃东西");
    }
}
public class Text {
    public static void main(String[] args) {
        //现在我们想让狗吃东西就直接调用上面那个类里面的方法就行了
         Dog dog = new Dog();
         dog.eat();
    }
}
//面向对象编程就是找谁来做,而不需要我们自己动手,让狗吃东西。
//上面代码就是找到Dog类里面的对象让它来完成我们想要的功能

现实示例:

面向过程:都要自己做

面向对象:

找人来做。

2.2 优点:

符合我们常规的思维方式,稳定性好,可复用性强,易于开发大型产品,好维护。

2.3特点:

1.继承(Inheritance )

2.封装(Encapsulation )

3.多态(Polymorphism )

2.4抽象:

就是将一些具有相同特征的类的对象给抽取出来,例如:

狗,会吃东西;猫,也会吃东西;老鼠也会吃东西。就可以把他们相同的特征给抽取出来他们都会吃东西,所以把它们都归为动物这一类。

三、类与对象

是具备某些共同特征或行为一类事物的抽象,比如上面案例中的学生类,学生都具有姓名、性别、年龄等特征,当然还有报名、请假等行为。其实现实生活中还有很多,比如:人类、车类、星球类,动物类, 猪类等

对象是类的实例,简单的认为对象就是类中具体的个体 ,比如张三就是人类的实例。

四、类的定义

//设计类语法:
public class 类名{ 
	//可编写 0 到 N 个成员变量 
	[修饰符] 数据类型 变量名1; 
	[修饰符] 数据类型 变量名2; 
	//可编写 0 到 N 个成员方法/实例方法
	[修饰符] 返回值类型 方法名称(参数){ 
	//方法体 
	} 
}

public class Animal {
    String name;
    String sex;
    int age;

    void play(){
        System.out.println("动物可以玩");
    }
    void eat(){
        System.out.println("动物可以吃东西");
    }
}

五、对象的创建与赋值、取值

5.1创建对象

//创建对象
/*
类名 对象名=new 类名();
*/
public class Text {
    public static void main(String[] args) {
        Cat cat = new Cat();
    }
}

5.2

给成员变量赋值语法:
对象名.成员变量 = 值; //注意:必须值和成员变量数据类型一致
例如:
public class Text {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.sex = "公";

 5.3

对象取值语法:
对象名.成员变量 ; 
对象调用实例方法:
   对象名.方法名(…);
例如:public class Text {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.sex = "公";

        cat.play();
        System.out.println(cat.sex);

        Animal animal = new Animal();
        animal.eat();
        animal.name = "za";

六、构造函数

6.1构造函数的特点;

①每一个类中都至少有一个构造方法;

② 如果没有看到(显示的),那么存在一个隐式的无参数的构造方法;

③ 如果一个类中有显示的构造方法,那么隐式的无参的构造方法就不存在了;

④ 一般来说我们写了有参数的构造函数,立马写一个无参数的构造函数,哪怕它不使用到。这是规范,防止你犯一些低级错误。

6.2构造函数的作用

在创建对象的同时给对象的成员变量赋值(初始化工作)

//语法
public class 类名{
成员变量  (字段); 
构造方法(有参、无参);
方法 (具体的一个功能行为); 
}

public class User {
	/**姓名*/
	String name;
	/**年龄*/
	int age;	
	/**
	 * 无参构造
	 */
	public User() {
		System.out.println("User无参构造...");
	}
	/**
	 * 有参构造
	 * 形参个数由需求决定
	 */
	public User(String n,int a) {
		name = n;//将传入的n的值赋值给成员变量name
		age = a;//将传入的a的值赋值给成员变量age
		System.out.println("User有参构造...");
	}
    public void playGame() {
		System.out.println("耍鸟...");
	}
}

 6.3构造函数的重载

public class User {
	
   //属性
   String username;
   String password;
   
   public User(){
	   
   }
   
   //7 构造函数一般的用户是用来在创建对象的时候就给对象的属性赋值
   public User(String uName,String pwd){
	   username = uName;
	   password = pwd;
   }
   
   //8 构造函数也能重载
   public User(String uName){
	   username = uName;
	   password = "123456";
   }

6.4构造函数的注意事项

通方法不要和类名一致,行业默认规则;

普通方法(Method)和构造方法(Constructor)是不同的两种结构,调用场景也不一样

  1. 普通方法的调用 : 3种

    1)类名.方法名(…); -有static修饰的

    2)对象名.方法名(…);

    3)方法名(…); --同一个类里面 都要static 或 都没有static修饰

  2. 构造方法的调用 :

    (目前为止) new 类名(...);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值