2021-08-15面向对象

本文详细介绍了Java面向对象编程的基础概念,包括类和对象的创建,方法的定义和使用,以及构造方法和可变参数的应用。通过示例代码展示了如何定义类、创建对象、调用方法和构造器,以及如何使用可变参数。内容涵盖了对象初始化、方法行为描述以及参数传递等核心知识点。
摘要由CSDN通过智能技术生成

第一章:面向对象知识点梳理

第一部分:类和对象的创建
谈及面向对象就离不开类的概念,面向对象的内容不仅仅体现在类和对象上面,还有类和对象的概念以及方法的定义和使用。

类的定义的语法
[修饰符] class 类名{ 构造方法的定义;//可以定义0-N个 属性;//可以定义0-N个 方法;//可以定义0-N个}
注释:一般访问修饰符我们使用public代表项目中任何地方都可以使用它,class关键字是用来定义类的关键字,一定记得全小写,类名要遵守帕斯卡命名法,属性就是这类事物的共同特征一般用于存储特殊数据,方法就是他们的共同行为,代表能够执行的功能。

下面我们来看看定义类以及如何使用类创建对象

package com.test1;

public class Hero {
String name;//名字
int age;//年龄
String sex;//性别

//方法
public void run(int speed) {
	System.out.println(speed+"m/s的速度狂奔");
}
}

package com.test1;

public class Mytest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        //创建类的对象才能使用它
		Hero hero1=new Hero();
		hero1.name="黑暗游侠";
		hero1.age=18;
		hero1.sex="女";
		System.out.println("英雄的名字是"+hero1.name);
		System.out.println("英雄的年龄是"+hero1.age);
		System.out.println("英雄的性别是"+hero1.sex);
		//调用英雄的方法
		hero1.run(200);
		//再创建一个对象
		Hero hero2=new Hero();
		hero2.name="剑圣";
		hero2.age=20;
		hero2.sex="男";
		System.out.println("2号英雄的名字是"+hero2.name);
		System.out.println("2号英雄的年龄是"+hero2.age);
		System.out.println("2号英雄的性别是"+hero2.sex);
		hero2.run(100);

}
}

请添加图片描述
笔记:首先在mian方法中我们要去定义创建对象
对象的创建:使用类名 对象名=new 类名();
创建完类就相当于定义了一个模板,当然模板是不能直接使用的,我们需要通过类创建对象,对象就是通过类产生的实例,并且每个实例都是唯一、互不影响的,对象也就相当于是用来表示现实生活中实际存在且能够使用的独立个体,每使用new关键字,就会产生一个新的对象,而对象名就代表该对象的一个引用名,对象里面可以存储很多的属性数据,也可以拥有很多可以调用执行的方法,当然使用的时候记得加“.”操作符。

第二部分:类中的方法及值传递
方法是用来描述类的行为的,也就是能够做的事情,比如我们人类就能够吃饭睡觉学习等等,这些都是我们能够做的事情,那么在类中如何表示能做的事情呢。
方法定义的语法如下:
访问修饰符 返回值类型 方法名(参数列表){
方法体}
关于这个定义语法的理解:
(1)访问修饰符我们暂时都使用public,代表任何地方都能使用。(2)返回值类型根据需求来设定,如果没有值需要返回给方法的调用者,则写void空的;如果有则需要写具体的返回类型。类型可以是值类型,也可以是引用类型。(3)方法名为驼峰命名法,首字母小写,后面的单词首字母大写。(4)参数列表是方法执行时外界传入的数据,可以写也可以不写,视方法功能情况而定,编写时为参数类型空格参数名,如果多个参数则使用逗号隔开。(5)方法体是由多行代码组成,如果返回值为void则无需使用return关键字,如果非void则需要使用return关键字,完成方法返回值类型声明对应的具体值。

下面我们来看看类中的方法如何定义:

package com.test1;

public class Hero {
String name;//名字
int age;//年龄
String sex;//性别

//方法
public void run(int speed) {
	System.out.println(speed+"m/s的速度狂奔");
}
//方法
public void battle() {
	System.out.println(this.name+"在肆无忌惮的战斗,他的年龄只有"+this.age+"可他的血量只有1%了");
}
//方法
public void change(int num) {
	num+=50;
	System.out.println("num的结果是:"+num);
	
}
}

package com.test1;

public class Mytest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
   
        Hero hero1=new Hero();
        hero1.name="剑圣";
        hero1.age=20;
        hero1.battle();
        hero1.run(300);
        int number=10;
        //值传递方式
        hero1.change(number);
        System.out.println(number);
        		
}
}

请添加图片描述
第三部分:可变参数的使用
有些时候,我定义一个方法参数有时候需要接收1个值,有时候又不需要值,甚至有的时候需要几个值,那我们该如何去定义呢,在JDK1.5以后Java允许可变的参数来满足这种特殊场合,就是允许为方法指定数量不太确定的形参,形参在定义的时候在类型后使用“…”三个点进行声明,并且只能放在参数列表的最后一个,防止和前面的非可变参数冲突。

下面我们一起来看看如何定义可变的参数以及如何调用:

package com.test1;

public class Hero {
String name;//名字
int age;//年龄
String sex;//性别

//方法
public void run(int speed) {
	System.out.println(speed+"m/s的速度狂奔");
}
//方法
public void battle() {
	System.out.println(this.name+"在肆无忌惮的战斗,他的年龄只有"+this.age+"可他的血量只有1%了");
}
//方法
public void change(int num) {
	num+=50;
	System.out.println("num的结果是:"+num);
	
}
//方法
public void test(String...strs) {
	for (String string : strs) {
		System.out.println(string);
	}
}
}

package com.test1;

public class Mytest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Hero h1=new Hero();
        h1.test();//没有传递参数也不报错
        h1.test("张三","李四");
       
        
}
}

请添加图片描述

第四部分:类中的构造方法
构造方法主要是用来完成对象的一些数据初始化工作。
构造方法的语法如下:

public 类名(){
构造方法体;
}

下面来看一下构造方法:

package com.test1;

public class Hero {
String name;//名字
int age;//年龄
String sex;//性别

//方法
public void run(int speed) {
	System.out.println(speed+"m/s的速度狂奔");
}
//方法
public void battle() {
	System.out.println(this.name+"在肆无忌惮的战斗,他的年龄只有"+this.age+"可他的血量只有1%了");
}
//方法
public void change(int num) {
	num+=50;
	System.out.println("num的结果是:"+num);
	
}
//方法
public void test(String...strs) {
	for (String string : strs) {
		System.out.println(string);
	}
}
//无参构造方法
public Hero() {
	// TODO Auto-generated constructor stub
	System.out.println("无参构造方法");
}
public Hero(String name,int age,String sex) {
	this.age=age;
	this.name=name;
	this.sex=sex;
	System.out.println("有参构造方法");
}
}

package com.test1;

public class Mytest1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Hero h1=new Hero("张三",20,"男");
        System.out.println("姓名是:"+h1.name);
        System.out.println("姓名是:"+h1.age);
        System.out.println("姓名是:"+h1.sex);
       
       
        
}
}

请添加图片描述
在这里需要注意的是:一个类中可以编写多个构造方法,但是参数不能相同。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十的十七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值