面向对象(一)认识思想

目录

学习引导: 

创建使用类: 

创建了一个最简单的类以及它的调用,类和主代码在一个java文件中

类中属性的使用

属性(成员变量)和局部变量的使用:

类中方法的使用 

类中方法的测试:


学习引导: 

一、 Java面向对象学习的三条主线:接下来学习面向对象,这是所有的要学的内容,包括三点:
      1、java类及类的成员:属性、方法、构造器;代码块、内部类
      2、面向对象的三大特性:封装性、继承性、多态性、(抽象性)
      3、其他关键字:this、super、static、final、abstract、interface、package、import等

二、人把大象装进冰箱
    1.面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
        ①把冰箱门打开
        ②抬起大象,塞进冰箱
        ③把冰箱门关闭
    
    2.面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
    
    人{
        打开(冰箱){
            冰箱.开开();
        }
        抬起(大象){
            大象.进入(冰箱);
        }
        关闭(){
            冰箱.关闭();
        }
    }
    
    冰箱{
        开开.(冰箱){
        }
        关闭.(冰箱){
        }
    }
        
    大象{
        进入.(冰箱){
        }
    }

        总结:我们以前学的方式方法大部分都是面向过程,面向对象的思想就是创建一个或者多个类,类就包含了我们需要的对象的所有功能,然后将类实例化,在调用属性或方法

三、面向对象的两个要素
    1、类:对一类事物的描述,是抽象的、概念上的意义
    2、对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)
    
    >面向对象程序设计的重点是类的设计
    >设计类,就是设计类的成员。

创建使用类: 

一、类中的元素
 属性 = 成员变量 = field = 域、字段
 方法 = 成员方法 = 函数(c语言中)= method

二、类和对象的使用(面向对象思想的落地)
  1.创建类,设计类的成员
  2.创建类的对象(类的实例化)
  3.调用对象的属性“对象.属性”,调用对象的方法“对象.方法”

三、如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性(非static的)static的属性存放在方法区
     每个对象都是相对独立的

创建了一个最简单的类以及它的调用,类和主代码在一个java文件中

public class PersonText {
public static void main(String[] args) {
	//2.创建Preson类的对象 = 类的实例化 = 实例化类
	Person p1 = new  Person();
	//Scanner scan = new Scanner(System.in);
	
	
	//3.调动对象的结构: 属性、方法
		//调用属性:“对象.属性”
		p1.name = "tom";
		p1.isMale = true;
		System.out.println(p1.name);
	
		//调用方法:“对象.方法”
		p1.sleep();
		p1.eat();
		p1.talk("chinese");
		
	//**************************************
		Person p2 = new Person();
		System.out.println(p2.name);//null
		System.out.println(p2.isMale);//false
		
	//**************************************
		//相当于p1的地址值赋值给了p3,导致p1和p3指向了堆中的同一个对象实体。
		Person p3 = p1;
		System.out.println(p3.name);//tom
		System.out.println(p3.isMale);//true
		p3.age = 10;
		System.out.println(p3.age);//10
}
}

//1.创建类,设计类的成员
class Person{
	//属性
	String name ;
	int age = 1;
	boolean isMale;
	
	//方法
	public void eat() {
		System.out.println("人可以吃饭");
	}
	
	public void sleep() {
		System.out.println("人可以睡觉");
	}
	
	public void talk(String language) {
		System.out.println("人可以说话,使用的是"+ language);
	}
}

类中属性的使用

属性(成员变量)   VS  (局部变量)
1相同点:
      (1)定义变量的格式:数据类型 变量名 = 变量值
      (2)先声明,后使用
      (3)变量都有其对应的作用域

2不同点:
(1)在类中声明的位置不同
      属性(成员变量):直接定义在类的一对{}内
      局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量
    (2)关于权限修饰符的不同
       属性(成员变量):可以在声明属性时,指明其权限,使用权限修饰符
       常用的权限修饰符:private、public、缺省、protected----->封装性
                注:目前声明属性时都是缺省
        局部变量:不可以使用权限修饰符
     (3)默认初始化值不同
        属性(成员变量):根据其类型都有默认初始化值
           整型(byte、 short、 int、long) : 0
           浮点型(f1oat. double) : 0.0
           字符型(char) : 0(或'\u0000')
           布尔型(boolean): false
           引用数据类型(类、数组、接口): nul1
        局部变量:没有默认初始化值,在调用局部变量之前一定要显示赋值
            特别的:在调用时赋值即可
    (4)在内存中加载的位置不同
        属性(成员变量):在堆空间中     堆空间存放对象实例 (非static的)        static的属性存放在方法区
       局部变量:在栈空间中    栈用来存储局部变量

属性(成员变量)和局部变量的使用:

public class ShuXingText {
	public static void main(String[] args) {
		User u1 = new User();
		u1.talk("汉语");//现在赋值
		u1.eat();//之前赋值了,改不了的
	}
}

class User{//User类
	//属性(或成员变量)
	String name;
	int age;
	boolean isMale;
	//方法
	public void talk(String language) {//language : 形参(局部变量)
		System.out.println("我们使用" + language + "进行交流");
	}

	public void eat() {
		String food = "大盘鸡";//food :形参(局部变量)
		System.out.println("我喜欢吃" + food);
	}
}

类中方法的使用 

1.方法:描述类应具有的功能。
 比如:Math类:sqrt() \ random()\...
            Scanner类:nextXxx()...
            Arrays类: sort() \ binarySearch() \ toString() \ equals() ...

void不需要返回值,String需要返回值,String就和int这些一样都要返回值

2.方法的声明:权限修饰符 返回值类型 方法名(形参列表){
                                       方法体
                             }
         注意:static、final、abstract后面再讲

3.说明:
          (1)权限修饰符:默认方法的权限修饰符先使用public
             Java规定了四种权限修饰符:public、private、缺省、protected ————————>封装性再细说
         (2)返回值类型:有返回值  VS  没有返回值
             ①如果方法有返回值,则必须在方法声明时指定返回值的类型。同时,在方法中需要使用return
                 关键字来返回指定类型的变量和常量
             ②如果方法没有返回值,则声明方法时用void来表示。通常在没有返回值的方法中就不用return,
                但是如果非要用就“return;”表示结束此方法的意思。
             ③我们定义方法时要不要有返回值?
                 看题目要求、凭经验
         (3)方法名:属于标识符,需要见明知意
         (4)形参列表:方法可以声明0个,1个或多个形参
             格式:数据类型1 形参1,数据类型2 形参2,...
             ①我们定义方法时要不要形参?
                 题目要求、凭经验,形参就是一个方法写好以后,调用时来接收我们的真实数据的一个东西
         (5)方法体:方法功能的实现。
 
4.return关键字的使用:
         (1)使用范围:使用在方法内
         (2)作用:①结束方法
                 ②针对于有返回值的方法用:“return 数据”方法返回所要的数据。
         (3)注意:return后面不能在声明执行语句。
 5.方法的使用
        ①可以调用当前类的属性和方法
        ②方法A中又调用了方法A:递归方法
        ③方法中不能定义方法

类中方法的测试:

public class CustomerText {
public static void main(String[] args) {
	Customer cust = new Customer();
	cust.sleep(8);
}
}

//客户类
class Customer{
	//属性
	String name;
	int age ;
	boolean isMale;
	
	//方法
	public void eat() {
		System.out.println("客户吃饭");
		return;//表示结束此方法,return后不能生命表达式
	}
	
	public void sleep(int hour) {
		System.out.println("休息了"+ hour + "个小时");
		eat();
	}
	
	public String getName() {
		//这里必须有返回值,如果只是age>18才能返回name,那就会报错
		if(age > 18) {
			return name;
		}else {
			return "tom";
		}
	}	
	
	public String getNation(String nation) {
		String info = "我的国籍是"+nation;
		return info;
	}
}

到这里我们就认识了类之后是类的一些练习

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java塑造中...

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

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

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

打赏作者

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

抵扣说明:

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

余额充值