精华内容
下载资源
问答
  • java类与对象
    万次阅读
    2018-04-12 12:43:59
    什么是类?

    类就是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。

    什么是对象?

    对象就是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。

    类是对象的一个集合,对象是类的实例。

    而对象的产生在Java中是使用new来实现的。

    做一个比方老师是对一个群体的称呼,老师这个群体就是一个类,而老师又可以具体到某一个人,比如张老师、王老师之类的等等,张老师就是一个对象。

    类和对象的区别

      1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
      2,对象是类的一个具体。它是一个实实在在存在的东西。
      3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
      4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。

    更多相关内容
  • Java类对象(重点详解)

    千次阅读 多人点赞 2021-04-23 18:25:35
    这段时间博主学习了一些Java对象的知识,今天我们就来聊聊Java中的对象对象的关系。 其实就是一个模板,比如说就好比一张房子的设计图纸,或者说是一个倒印模具,创建一个就好比设计一张图纸...


    这段时间博主学习了一些Java中类和对象的知识,今天我们就来聊聊Java中的类和对象。

    类和对象的关系。

    类其实就是一个模板,比如说类就好比一张房子的设计图纸,或者说是一个倒印模具,创建一个类就好比设计一张图纸,刻一个模板。对象就好比一座建好的房子,一个成型的模型,无疑想要一座房子或者一个模型都先需要一张图纸和一个模板,而这就是类和对象的关系。

    类的介绍

    首先Java里面的类由关键字class定义,类中的元素称为:成员属性。类中的函数称为:成员方法。

    class Person {
        public int age;//成员属性 实例变量
        public String name;
        public String sex;
        public void eat() {//成员方法
           System.out.println("吃饭!");  
       }
        public void sleep() {
           System.out.println("睡觉!");  
       }
    }
    

    如下就是定义一个类

    class Person {
        public String name;
        public String sex;
        public int age;
        //....人的属性
    }
    

    然后拿这个类创建一个对象,然后我们可以通过点号 . 来访问这个对象的成员,看下图

    Person person = new Person();//实例化一个对象
    

    在这里插入图片描述
    可以看到在没有赋值之前是会默认赋值为类型相对应的0值。

    类型对应的0值
    整型0
    浮点型0.0
    字符类型r/u0000
    引用类型null

    注:这里之所以有默认的0值,是因为他们都是成员变量,不属于局部变量,所以有默认值,局部变量需要自己赋值才能使用。

    类变量(静态变量)

    所谓的类变量也就是静态变量,由关键字static修饰,存储在方法区,在类加载的时候就会分配空间,所以类变量是脱离对象的,就是说,就算没有实例化对象也是可以使用类变量的,看下图,没有对象依然可以通过 类名.变量名 使用类变量
    在这里插入图片描述
    同样的,由static修饰的方法也是类方法也叫静态方法,它和类变量具有相同的性质,类加载时分配空间,不依赖于实例化的对象,可以直接通过 类名.函数名() 调用。
    如果不是静态的变量和方法,那么我们就需要先通过new关键字实例化一个对象才可以使用。

    public && private

    在类的定义中有许多的访问权限修饰符,而public和private是两个最常使用的,顾名思义,public修饰的变量是公开的,所谓的公开就是说可以直接访问,举个栗子
    在这里插入图片描述
    当我们使用public修饰成员变量时可以正常使用,通过点号访问对象的成员,但是当我们使用private修饰的时候,就会报错,因为private是私有的,只能在当前类里面使用,不能被外部引用。
    在这里插入图片描述
    如果要其他类中需要使用的话就需要提供公开的接口,给需要使用的类调用,简单来讲就是,我写个公开的方法,你把数据通过方法传给我,我自己来操作,比如以下方法,看名字也能知道这些方法的作用,我们来使用一下这些方法
    在这里插入图片描述
    在这里插入图片描述
    可以看到,通过公开的接口我们可以对私有的成员变量进行一系列的操作,细心的小伙伴们可能会发现在setName等等方法里面都出现了 this.变量名那么这个是什么呢,this其实是一个关键字,表示当前方法的引用,那么为什么要有这个关键字呢,那是因为当变量名相同时,局部变量有限使用,可能会导致无法赋值等情况,看下图,当去掉this之后,名字明显为初始值,这就是因为局部变量优先使用的原因,导致类里面的成员变量没有被赋值。
    在这里插入图片描述

    一些建议和小结

    1.建议实现类的时候将成员变量尽量设置为private属性,防止数据被直接篡改,而方法非必要公开的接口也设置为private属性的,具体根据实际情况来定

    2.变量名和方法名使用小驼峰命名规则,尽量做到见名知意,做不到应该给上适当的中文注释,帮助其他人理解代码的意思

    3.static修饰的代码和代码块优先于任何代码执行

    4.一个类可以创建多个对象,很好理解,一张图纸可以建造多栋相同的房子,比如小区的楼房就是一张图纸建造出来的

    5.在实例化一个对象的时候会调用一个构造方法,所谓的构造方法就一个名字与类名相同的方法,可以带参数,没有返回值类型声明,并且如果你没有定义的话,编译器就会自动实现一个不带参数的构造方法,如果你定义了,那么编译器就不会自动生成。并且构造方法也是支持重载的,构造方法的用处之一就是可以在创建对象的时候就进行赋值。
    在这里插入图片描述
    在这里插入图片描述
    加上一句this.name ,就可以不需要setname了,只需要创建对象的时候,直接传参即可,其他的博主就不在赘述了。
    在这里插入图片描述

    在这里插入图片描述

    写在最后的话

    以上就是博主这段时间的学习内容,今天分享就到这里了,如果文章中有表达不清楚或者表述有错误的地方欢迎评论或者私信指出,博主会及时处理,好了本篇博客就到此结束了,我们下篇博客见。

    展开全文
  • EducoderJava面向对象 - 类与对象

    千次阅读 多人点赞 2021-03-10 15:36:01
    EducoderJava面向对象 - 类与对象 1.什么是,如何创建 public class Test { public static void main(String[] args) { /********** Begin **********/ //创建Dog对象 //设置Dog对象的属性 Dog ...

    EducoderJava面向对象 - 类与对象

    1.什么是类,如何创建类

    public class Test {
    	public static void main(String[] args) {
    		/********** Begin **********/
    		//创建Dog对象
    		//设置Dog对象的属性
    		Dog wuhuarou = new Dog();
    		wuhuarou.name = "五花肉";
            wuhuarou.color = "棕色";
            wuhuarou.variety = "阿拉斯加";
    		//输出小狗的属性
    		System.out.println("名字:" + wuhuarou.name + ",毛色:" + wuhuarou.color  + ",品种:" + wuhuarou.variety );
    		
    		//调用方法
            wuhuarou.eat();
            wuhuarou.run();	
    	}
    }
    	class Dog{
        	String name;
        	String color;
        	String variety;
        	void eat(){System.out.println("啃骨头");}
        	void run(){System.out.println("叼着骨头跑");}
    }
    

    2.构造方法

    import java.util.Scanner;
    
    public class Test {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String name = sc.next();
    		String sex = sc.next();
    		/********** Begin **********/
    		//分别使用两种构造器来创建Person对象  
    		Person a = new Person();
            a.Person();
            a.Person(name,sex);
    		/********** End **********/
    		
    	}
    }
    
    //创建Person对象,并创建两种构造方法
    /********** Begin **********/
    class Person{
        String name;
        String sex;
        public void  Person(){
            System.out.println("一个人被创建了");
        }
        public void  Person(String Name, String Sex){
            System.out.println("姓名:" + Name + ",性别:" + Sex + ",被创建了");
        }
    }
    /********** End **********/
    

    3.选择题
    C CD

    4.This关键字

    import java.util.Scanner;
    
    public class Test {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String name = sc.next();
    		int age = sc.nextInt();
    		String sex = sc.next();
    		Person p = new Person(name,age,sex);
    		p.display();
    	}
    }
    
    class Person{
    	String name = "张三";
    	int age = 18; 
    	String sex = "男";
    	/********** Begin **********/
    
    	public Person(String name,int age,String sex){
            this.name = name;
    		this.age = age;
    		this.sex = sex;
    	}
    	
    	public Person(int age){
    		age = age;
    	}
    	
    	public void display(){
    		String name = "李四";
    		int age = 11;
    		String sex = "男";
    		System.out.println("name:" + this.name);
    		System.out.println("age:" + this.age);
    		System.out.println("sex:" + this.sex);
    	}
    	/********** End **********/
    }
    

    5.类与对象练习
    Test.java:

    import java.util.Scanner;
    
    public class Test {
    	
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		String theMa = sc.next();
    		int quantity = sc.nextInt();
    		boolean likeSoup = sc.nextBoolean();
    		/********** Begin **********/
    		//使用三个参数的构造方法创建WuMingFen对象  取名 f1
    
    		//使用两个参数的构造方法创建WuMingFen对象  取名 f2
    
    		//使用无参构造方法创建WuMingFen对象  取名 f3
    
    		//分别调用三个类的 check方法
            WuMingFen f1 = new WuMingFen(theMa,quantity,likeSoup);
    		WuMingFen f2 = new WuMingFen(theMa,quantity);
    		WuMingFen f3 = new WuMingFen();
    		f1.cheak();
    		f2.cheak();
    		f3.cheak();
    		
    		/********** End **********/	
    	}
    }
    

    WuMingFen.java

    /********** Begin **********/
    //在这里添加包名  step4
    package step4;
    //创建类 添加属性和方法
    class WuMingFen{
        String theMa;
        int quantity;
        boolean likeSoup;
        public WuMingFen(String theMa, int quantity)
        {
        	this.theMa = theMa;
        	this.quantity = quantity;
        }
        public WuMingFen(String theMa, int quantity, boolean likeSoup)
        {
        	this.theMa = theMa;
        	this.quantity = quantity;
        	this.likeSoup = likeSoup;
        }
        public WuMingFen()
        {
            theMa = "酸辣";
            quantity = 2;
            likeSoup = true;
        }
        public void cheak(){
        	System.out.println("面码:" + this.theMa + ",粉的份量:" + this.quantity + "两,是否带汤:" + this.likeSoup);
        }
    }
    /********** End **********/	
    

    6.static关键字

    public class Test {
    	/********** Begin **********/
    	static String name = "楚留香";
    	static
    	{
    		System.out.println("hello educoder");
    	}
    	public static void main(String[] args) {
    		System.out.println("我叫" + name);
    		study();
    	}
    	
    	public static void  study(){
    		System.out.println("我喜欢在educoder上学习java");
    	}
    	/********** End **********/
    }
    

    7.选择题
    D EG B

    仅供参考

    展开全文
  • java类与对象的关系区别

    万次阅读 多人点赞 2019-04-08 15:25:54
    是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。 对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性...

    参考博客:https://blog.csdn.net/scbiaosdo/article/details/79912037

                        https://blog.csdn.net/dingd1234/article/details/79576730

                        https://blog.csdn.net/wei_zhi/article/details/52745268(主要)

     

     

    类:事物的描述。是具备某些共同特征的实体的集合,它是一种抽象的数据类型,它是对所具有相同特征实体的抽象。在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。


    对象:该类事物的实例。在Java中通过new进行创建。是一个真实世界中的实体,对象与实体是一一对应关系的,意思就是现实世界的每一个实体都是一个对象,所以对象是一个具体的概念。对象是一种个性的表示,表示一个独立的个体,每个对象拥有自己独立的属性,依靠属性来区分不同对象。

     

    举个例子

    我们发的卷子出的题都是一样的 相当于一个类 ,而每个同学做的都相当于对象了

    造汽车的图纸相当于类,而造出来的汽车相当于对象了

    每个学校的老师是一个类,但是具体到每个老师就是对象了

     

    类和对象的区别


      1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
      2,对象是类的一个具体。它是一个实实在在存在的东西。
      3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
      4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。
     

     

    具体的:类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。

     

    在Java中定义类,使用关键字class完成。语法如下:

    class 类名称 {
             属性 (变量) ;
             行为 (方法(函数)) ;
    }

    范例:定义一个Person类

    class Person {     // 类名称首字母大写
        String name ;
        int age ;
        public void tell() {        // 没有static
              System.out.println("姓名:" + name + ",年龄:" + age) ;
             }
    }

    类定义完成之后,肯定无法直接使用。如果要使用,必须依靠对象,那么由于类属于引用数据类型,所以对象的产生格式(两种格式)如下:

    (1)格式一:声明并实例化对象

    类名称 对象名称 = new 类名称 () ;

    (2)格式二:先声明对象,然后实例化对象:

    类名称 对象名称 = null ;
    对象名称 = new 类名称 () ;

     引用数据类型与基本数据类型最大的不同在于:引用数据类型需要内存的分配和使用。所以,关键字new的主要功能就是分配内存空间,也就是说,只要使用引用数据类型,就要使用关键字new来分配内存空间。

    当一个实例化对象产生之后,可以按照如下的方式进行类的操作: 
    对象.属性:表示调用类之中的属性; 
    对象.方法():表示调用类之中的方法。

    范例:使用对象操作类

    package com.wz.classandobj;
    
    class Person { 
        String name ;
        int age ;
        public void get() {
            System.out.println("姓名:" + name + ",年龄:" + age);
        }
    }
    
    public class TestDemo {
            public static void main(String args[]) {
                Person per = new Person() ;// 声明并实例化对象
                per.name = "张三" ;//操作属性内容
                per.age = 30 ;//操作属性内容
                per.get() ;//调用类中的get()方法
            }
    }
    

    运行结果:

    姓名:张三,年龄:30

    以上完成了一个类和对象的操作关系,下面换另外一个操作来观察一下:

    package com.wz.classandobj;
    
    class Person { 
        String name ;
        int age ;
        public void get() {
            System.out.println("姓名:" + name + ",年龄:" + age);
        }
    }
    
    public class TestDemo {
            public static void main(String args[]) {
                Person per = null;//声明对象
                per = new Person() ;//实例化对象
                per.name = "张三" ;//操作属性内容
                per.age = 30 ;//操作属性内容
                per.get() ;//调用类中的get()方法
            }
    }

    运行结果:

    姓名:张三,年龄:30

     那么,问题来了,以上两种不同的实例化方式有什么区别呢? 
    我们从内存的角度分析。首先,给出两种内存空间的概念: 
    (1)堆内存:保存对象的属性内容。堆内存需要用new关键字来分配空间; 
    (2)栈内存:保存的是堆内存的地址(在这里为了分析方便,可以简单理解为栈内存保存的是对象的名字)。
    1

    任何情况下,只要看见关键字new,都表示要分配新的堆内存空间,一旦堆内存空间分配了,里面就会有类中定义的属性,并且属性内容都是其对应数据类型的默认值。

    于是,上面两种对象实例化对象方式内存表示如下:

     这里写图片描述

    两种方式的区别在于①②,第一种声明并实例化的方式实际就是①②组合在一起,而第二种先声明然后实例化是把①和②分步骤来。

     

    展开全文
  • Java类对象 详解(一)

    万次阅读 多人点赞 2016-10-06 20:48:02
    几乎现在的所有应用都以面向对象为主了,最早的面向对象的概念实际上是由IBM提出的,在70年代的Smaltalk语言之中进行了应用,后来根据面向对象的设计思路,才形成C++,而由C++产生了Java这门面向对象的编程语言。...
  • Java类与对象的定义使用

    千次阅读 多人点赞 2018-10-31 20:38:54
     把客观事物封装成抽象的,每个都有自己的属性方法,并且可以让自己的数据和方法只让可信的对象操作,对不可信的进行信息隐藏。内部操作对外部而言不可见(保护性) 0.2 继承性  它可以是现有的...
  • 本号主要是Java常用关键技术点,通用工具的分享;以及springboot+springcloud+Mybatisplus+druid+mysql+redis+swagger+maven+docker等集成框架的技术分享;datax、kafka、flink等大数据处理框架的技术分享。文章会...
  • 1. 面向对象编程 2. 类与对象 3. 属性 4. 方法 4.1 方法和实例方法 4.2 重载 4.3 可变形参 4.4 局部变量 4.5 参数传递方式 4.6 递归
  • java工具-Java对象转换成Map

    千次阅读 2019-09-10 16:58:59
    package ... import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map;... * Map转换工具 */ public class ...
  • java里面直接输出一个对象

    千次阅读 2021-02-27 18:46:54
    Java直接输出一个对象的时候,会自动调用这个的toString方法。这个方法在object中,而所有的都继承object,所以所有的都有toString方法。当我们不重写该方法时,该方法的实现是这样的:getClass()....
  • 获取类对象; 通过类对象获取一个构造器对象; 通过构造器对象获取实例对象。 TestReflection2.java package study; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; ...
  • java将Object对象转换成实体类对象

    千次阅读 2020-11-27 09:34:10
    ObjectMapper objectMapper=new ObjectMapper();... 错误信息: java.util.LinkedHashMap cannot be cast to com.hzcloud.hz.admin.api.vo.resource.supermap.polygon.child.PolygonPropertiesVo  
  • 今天我们讨论问题是:接口 对象 = new 实现 实现 对象= new 实现??? Java 中到底是应该用接口类型 还是实现类型去引用对象? //implA 为接口 ClassA为其实现 implA a=new ClassA();//...
  • 本关任务:按要求编写一个Java应用程序,巩固Java面向对象知识。 相关知识 为了完成本关任务,我们回顾一下前面所学知识:1.面向对象思想 ;2.封装;3.继承;4.构造函数;5.super()和this()。 面向对象思想 ...
  • Java对象的概念

    万次阅读 多人点赞 2018-06-01 23:50:23
    Java是一门面向对象的编程语言(OOP),想要理解Java,首先要理解(Class)和对象(Object)这两个概念。Java中的可以看成C语言的结构体的升级版。结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员...
  • Java类对象知识点的整理

    千次阅读 多人点赞 2019-04-14 18:00:01
    本次博客目的是为了理解面向对象的思想,掌握面向对象的基本原则以及 Java 面向对象编程基本实现原理,熟练使用封装、继承、多态面向对象三大特性。仅是博主本人总结,可能会有很多不足之处,希望读者可以有目的的...
  • 面向对象和面向过程 面向对象就是解决问题是将问题分解成一个个的步骤,每个步骤依次解决后也就意味着这个问题的解决了,一个个步骤可以对应一个个的函数,这些函数都定义好了,依次调用就行了。 面向过程则是将自然...
  • 因此需要涉及到json字符串实体类对象的相互转换。 2、产生原因 redis不支持直接存放java对象 因此需要用 JSON.toJSONString 把java对象转为json字符串。 3、解决方法 使用JSON.toJSONString 把java对象...
  • Java如何获取类对象的字段?

    千次阅读 2021-03-17 17:22:27
    下面的示例使用反射获取类对象的字段。我们将获取字段名称及其对应的类型。下面显示了三种可用于获取对象字段的方式:Class.getDeclaredFields()Class.getFields()Class.getField(String)packageorg.nhooo.example....
  • java将实体类对象转换为json字符串

    千次阅读 2021-09-09 09:37:31
    String jsonStr=JSONObject.toJSONString(实体类对象)
  • JAVA基础语法:函数(方法)、对象

    千次阅读 多人点赞 2020-01-12 04:14:38
    java中函数也称为方法,是一段具备某种功能的可重用代码块。 一个函数包括这几部分: 1. 函数头 2. 代码块 3. 返回值 函数头包括函数访问修饰符,函数返回值类型, 函数名,参数 具体看个实例: public class ...
  • Java类加载及对象创建过程详解

    千次阅读 多人点赞 2019-06-27 08:00:00
    加载过程 加载的五个过程:加载、验证、准备、解析、初始化。 ... 在Java堆中生成一个代表这个java.lang.Class对象,作为方法区域数据的访问入口。 验证 验证阶段作用是保证Class...
  • java中map和对象互转工具

    万次阅读 多人点赞 2019-01-05 13:33:41
    在项目开发中,经常碰到map转实体对象或者对象转map的场景,工作中,很多时候我们可能比较喜欢使用第三方jar包的API对他们进行转化,而且用起来也还算方便,比如像fastJson就可以轻松实现map和对象的互转,但这里,...
  • java – 将字符串转换为类对象

    千次阅读 2021-03-11 15:19:01
    (显然,的名称不包含对象的状态.) 如果您正在寻找一种方法来序列化/反序列化任意对象,而无需自己编写解析/解析方法,那么您根本不应该使用toString()方法.以下是您可以使用的一些备选方案: > Java对象序列化API,如...
  • 深入理解Java对象的创建过程:的初始化实例化

    万次阅读 多人点赞 2017-05-18 14:17:45
    Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。...本文试图对JVM执行初始化和实例化的过程做一个详细深入地介绍,以便从Java虚拟机的角度清晰解剖一个Java对象的创建过程。
  • Java中创建对象数组

    千次阅读 2021-01-16 16:52:24
    对象数组的定义一般数组的定义类似,但是需要为每一个元素实例化。 3.对象数组的实例化: 类名[ ] 对象数组名 = new 类名[ 数组大小] 以创建Student对象数组为例 Student[] stu = new Student[20]; //创建20个...
  • Java对象创建过程

    万次阅读 2022-03-28 17:54:13
    java对象创建过程、对象的组成、对象头、实例数据、对齐填充、对象创建方式、new关键字、Class的newInstance方法、Constructor的newInstance方法、Object的clone方法、反序列化、无父类的对象创建、有父类的...
  • java怎么判断对象为空

    千次阅读 2021-04-08 09:39:26
    java怎么判断对象为空发布时间:2020-06-10 09:34:15来源:亿速云阅读:116作者:Leahjava怎么判断对象为空?针对这个问题,今天小编总结这篇有关对象判断的文章,希望能帮助更多想解决这个问题的朋友找到更加简单易...
  • Java 对象和方法

    万次阅读 2019-10-13 15:57:34
    Java 对象和方法(一)的基础知识如何创建对象引用变量和赋值方法 的基础知识 是定义对象形式的模板,指定了数据以及操作数据的代码。 Java中使用的规范来构造对象,而对象的实例。 是逻辑抽象的...
  • java的Object转实体类对象

    千次阅读 2021-02-12 20:16:55
    ObjectMapper objectMapper = newObjectMapper();Zjzfxmsp zfsp= objectMapper.convertValue(object, Zjzfxmsp.class);上面的方式是可行的。...这种方式强转,虽然IDEA没有报编译错误但是运行起来就报错了java.la...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,172,598
精华内容 1,269,039
关键字:

java类与对象