关于java面向对象概念的理解及知识点(一)

首先关于面向对象的理解

	  对于java的编程,我们不得不提到的就是其编程思想:面向对象,说白了就是将所有
	的事物视为一个对象,这个对象中用于这个事物本身的属性及方法(功能)。比如:
	
	java如何实现面向对象:

	类:是对一类事物的抽象"描述" --- 描述了这类事物所具备的属性和功能;
	   此时类所描述的属性和功能是不存在的,仅仅是描述;
	   
	   楼宇的设计图纸  ---- 描绘(描述)了我们将要建造的楼宇的属性和功能;
	-------------------------------------------------------------------
	对象:类所描述的某类事物真正存在的实体 ---- 才真正的持有类所描述的属性和功能;
	
	   建造的大楼  --- 才真正的具备楼宇设计图纸所描绘的属性和功能;
*/
public class Demo1 
{
   public static void main(String[] args){
       /*
	    基本类型变量:
		 代表的是数值(常量值);
		 int a = 10;
		 double d = 3.3;
		 boolean b = true;

		引用类型变量:
		  引用的是堆内存中的空间地址;

	    2.创建Student描述类的对象
		  
		  Student s1 = new Student();
          Student:是数据类型(是引用类型中的类类型)
		  s1:对象名(变量名)(引用类型变量),代表其所引用的对象
		  
		  new Student():
		  才是真正的对象(就是在堆内存中为这个对象开辟的内存空间,这块空间就是这个对象),
		  而变量s1只是引用(代表)这个对象(引用堆内存中这个对象的所属空间的地址);
		  
		  int a = 10;
		  int:数据类型(基本数据类型)
		  a:变量名(基本类型变量)
		  10:初始化值
          a就代表10;
	   */
	   Student s1 = new Student();
	   //Student@7f0b8d03(哈希值)  @前是对象的类型是Student  @后是这个对象在内存中开辟的空间的地址(16进制值)
	   System.out.println(s1);

	   /*
	    对象持有的类所描述的属性和功能称为对象的成员:
		属性:成员属性  成员变量
		功能:成员方法  成员函数 

		访问对象持有的成员:  对象.成员
		对象.成员变量  拿到某个成员变量的值或者给某个成员变量去赋值;
		对象.成员方法  就可以去调用对象的成员方法;
	   */
	   //0   null   0   null
	   System.out.println(s1.no+"   "+s1.name+"   "+s1.age+"   "+s1.gender);
	   s1.no = 10011;
	   s1.name = "jack";
	   s1.age = 20;
	   s1.gender = "male";
	   //10011   jack   20   male
	   System.out.println(s1.no+"   "+s1.name+"   "+s1.age+"   "+s1.gender);
       
	   System.out.println("-------------------------------------------------------");

       //又创建了一个Student的对象s2,在堆内存中就是又一块对象空间,然后对象空间的地址被引用变量s2所引用
	   Student s2 = new Student();
	   System.out.println(s2);//Student@7de534cb
	   //0  null   0   null
	   System.out.println(s2.no+"  "+s2.name+"   "+s2.age+"   "+s2.gender);
	   s2.no = 10012;
	   s2.name = "rose";
	   s2.age = 22;
	   s2.gender = "female";
	   //10012  rose   22   female
       System.out.println(s2.no+"  "+s2.name+"   "+s2.age+"   "+s2.gender);
       
	   System.out.println("-------------------------------------------------------");

	   //将s1的引用地址传递给了s2
       s2 = s1;
	   //10011   jack   20   male
	   System.out.println(s2.no+"  "+s2.name+"   "+s2.age+"   "+s2.gender);

	   System.out.println("--------------------------------------------------------");
       
	   /*
	   null:指没有引用内存中的任何空间地址
	   "":指在内存中开辟了内存空间(有引用地址),这块空间内容为空;
	   */
	   //使s2没有任何引用
	   s2 = null;
	   System.out.println(s2);//null
	   //空指针异常(没有指针异常)
	   System.out.println(s2.no);
       
   }
}
/*
  1.定义学生的描述类
*/
class Student
{
    
	/*
	定义属性 --- 变量
	*/
	int no;//学号

	String name;//姓名

	int age;//年龄

	String gender;//性别

	/*
	  定义功能 ---- 方法
	*/
	//吃饭的功能
	public void eat(){
	  System.out.println("学号是:"+no+"的这个学生正在吃鱼香肉丝");
	}
	//睡觉的功能
	public void sleep(){
	  System.out.println("姓名叫:"+name+"的这个学生在睡席梦思");
	}
	//学习的功能
	public void study(){
	  System.out.println("年龄是:"+age+",性别是:"+gender+"的学生在学Java");
	}
}

总结:
	面向对象思想:
	将数据和功能封装到对象中,然后拿到对象,就可以使用对象所持有的数据和功能完成相应的任务;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值