学习Java简单整理笔记--Day09

本文详细介绍了面向对象的基本概念,包括面向过程与面向对象的区别,对象与类的关系,类的定义及构造函数,this关键字的使用,以及对象的创建与方法调用。通过实例展示了如何在Java中创建和使用类与对象,强调了对象的属性和方法,以及构造函数在对象初始化中的作用。
摘要由CSDN通过智能技术生成

面向对象--基础
---1,思想
    1,面向过程
        特点:只考虑事物的发展顺序
    2,面向对象
        特点:先考虑事物中存在哪些对象,再建立对象与对象之间的关系
---2,对象
    1,现实生活中的对象:真实存在的事物
    2,Java代码中的对象:用Java代码描述现实生活中或虚拟世界的事物
---3,对象与类的关系
    1,现实生活中:先有对象后有类    
    2,代码中:先有类,后有对象;一个类可以有多个对象
---4,类

    1,类概念
  【是什么?】多个对象抽取其共同点形成的概念
    2,如何创建一个类
        public class 类名{

        }
    3,类中有什么?
        1,属性:
            1. 概念:多个对象提取的静态特征,如人的姓名,性别,年龄,肤色,身高等
            2. 定义位置:类中方法外
            3.语法:public 数据类型  属性名;
            4. 又名:成员变量
            5. 与变量的区别:
                1,   作用域不同
                2,生命周期不同
                3,成员变量有默认值,基本数据为0;引用数据类型为null;局部变量没有默认值
                4,成员变量有访问权限修饰,局部变量没有访问权限修饰符
        2,方法:
            1,概念:多个对象提取的动态特征(行为),如人的吃饭,喝水,学习,睡觉等
            2,定义位置:类中方法外
            3,语法:public 返回值类型  方法名(形参列表){
                        方法体;
                    };
            4,又名:函数,成员方法
        3,构造函数(方法):
            1,概念:一个特殊的方法,该方法用户创建该类对象,使用new关键字调用
            2,定义位置:类中方法外
            3,语法:public 构造函数名 (形参列表){
                        方法体;
                    };
            注意:1.构造函数名必须是类名,大小写都要一致
                2.构造函数没有返回值
                3.如果一个类中没有构造函数,系统将为其提供一个无参构造函数
                4.如果一个类有构造函数,系统将不会为其提供构造函数
        4,this
            概念:哪个对象调用this所在的方法,this就代表谁
            使用:1. 在本类中可以调用本类的属性或方法,该情况下this可以省略
                2. 当局部变量与成员变量(属性)重名时,this可以用于区分局部变量和成员变量
                3. 在本类的构造方法中调用本类其他的构造方法时,要放在构造方法中的第一行, 并不能形成死循环
    ---this使用例子:
    1,在本类中调用本类其他属性或方法时,this可以省略不写
    

//this使用例子:
	//1,在本类中调用本类其他属性或方法时,this可以省略不写
	class A{
		private String name;
		public A(String n){
			name = n;
		}
		public void test(){
			System.out.println(name);
		}
	}
	class Test{
		public static void main(String[] args){
			A a1 = new A("嫌疑人1");
			A a2 = new A("路人甲");
			
			a1.test();
			a2.test();
		}
	}
	//2,当局部变量名与属性名,重名时.使用this进行区分
	class A{
		private String name;
		public A(String name){
			this.name = name;
		}
		public void test(){
			System.out.println(name);
		}
	}
	class Test{
		public static void main(String[] args){
			A a1 = new A("嫌疑人1");
			A a2 = new A("路人甲");
			
			a1.test();
			a2.test();
		}
	}
	//3,调用本类其他构造函数
	class A{
		private String name;
		public A(){
			this("无名");
		}
		public A(String name){
			this.name = name;
		}
		public void test(){
			System.out.println(name);
		}
	}
	class Test{
		public static void main(String[] args){
			A a1 = new A("嫌疑人1");
			A a2 = new A("路人甲");
			
			a1.test();
			a2.test();
		}
	}

---5,对象
    1,如何创建对象?
        数据类型  对象名 = new  构造函数名(实参列表);
    2,  对象的创建过程
        1,使用new 在堆中开辟一块内存地址
        2,对创建的对象赋初始化值;基本数据类型默认为0,引用数据类型为null
        3,执行构造函数中的代码
        4,将栈的引用指向堆内存的地址
    3,如何使用对象调用他自己的属性
        1,获取对象的属性
            语法:对象名. 属性名;
        2,修改对象的属性值
            语法:对象名. 属性名 = 值;
    4,如何使用对象调用方法
        语法:对象名.方法(实参列表 );【对象 所属的类具有该方法】

---6,没有对象名的对象,称为匿名对象【了解】
    new Random( ).nextInt( );

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值