精华内容
下载资源
问答
  • 感觉世界这么好的语言这么坑 创建一个类是这么的麻烦 感觉一切都是假象 但是别激动 当初我也是这么感觉的 但是当你学到后面的几个章节就会感到Kotlin的强大之处 今天我们就把这个错误说清楚...

    说起Kotlin创建实体类,我们首先对比一下java创建类的过程  Kotlin代码

    java代码

    public class Animal {
        String Eat;
    }
    
    
    
    感觉世界这么好的语言这么坑  创建一个类是这么的麻烦  感觉一切都是假象
    
    但是别激动  当初我也是这么感觉的  但是当你学到后面的几个章节就会感到Kotlin的强大之处
    
    今天我们就把这个错误说清楚   三种办法解决  
     
    1  var Eat:String = ""  Add initialize  初始化  
    2  abstract var Eat:String    但是在类也必须变成抽象类  3  class AnimalKotlin(var Eat: String) {  } 放到类的构造方法里面初始化
    
    
      // 父类
    
    open class AnimalKotlin(var Eat: String) {
    
     //AnimalKotlin(var Eat: String)  类的构造方法里面
     }
    
    // 子类
    class CatKotlin(Eat: String) : AnimalKotlin(Eat) {
    
       子类与父类对比下  
       1  父类是open打开的 这里必是这样的  类似与java里面的public
       2  吃这个方法  子类继承父类  子类也就持有父类的一切特性 与java一样
          才不用在子类里面申明了(var  修饰了) 直接传值到子类里面就可以了
       3 继承用的是  :  这里与java的extends一样 
     }
    
      //  在main方法里初始化
    
    fun main(args: Array<String>) {
    
        val catKotlin:CatKotlin=CatKotlin("大口吃肉")
    
       1  需要注意的是终于不是new出来了
       2  val相当与java里面final catKotlin 引用名  冒号后面是接的是类型
          相当于String 等等 等号后面是类的名  里面是初始化的值
     }


    展开全文
  • C++中如何创建一个类

    千次阅读 2019-10-12 10:59:56
    1.创建类的语法 class 类名{ }; class是定义的关键字,和struct基本相同 2.里面的变量 里的变量即属性 成员变量 把对象共同的特征抽象为属性(成员变量) 共性 成员变量 用来 描述 一类事物的特征 3.里的函数...

    1.创建类的语法

    class 类名{

    };
    class是定义类的关键字,和struct基本相同

    2.类里面的变量

    类里的变量即属性 成员变量
    把对象共同的特征抽象为属性(成员变量) 共性
    成员变量 用来 描述 一类事物的特征

    3.类里的函数

    类里面的函数 即方法 成员方法(函数)
    把对象共同的行为抽象为方法(函数)
    成员方法 用来 描述 一类事物的行为

    4.创建对象

    类实例化具体的对象 属性赋值 给成员变量具体的值
    类名 变量名;

    C++中class的私有成员不能再用 = {}的形式来初始化

    5.封装 访问控制属性

    public 公开的 类里面 和 类外面可以直接访问
    private 私有的 只允许在类里面访问
    protected 保护的 只允许在本类 和 子类中访问

    class与struct的区别

    class类里面默认的访问控制属性 都是 私有的
    struct里面默认的访问控制属性 都是 公开的

    程序示例:

    #include <iostream>
    using namespace std;
    
    class Stu{
    	//访问控制属性  默认是private
    //public:
    	int no;
    	string name;
    	int age;
    	int score;
    public:
    	Stu(){
    		cout << "Stu()构造函数"<<endl;	
    	}
    	Stu(int n,string a,int g,int s){
    		no = n;
    		name = a;
    		age = g;
    		score = s;
    		cout << "Stu(int,string,int,int) 构造函数"<<endl;
    	}
    	//函数  给属性赋值
    	void init(int no1,string name1,int age1,int score1){
    		no = no1;
    		name = name1;
    		age = age1;
    		score = score1;
    	}
    	void show(){
    		cout << no << ":" << name << ":" << age << ":" << score << endl;	
    	}
    };
    
    class GirlFriend{
    public:
    	GirlFriend(){
    		cout << "GirlFriend()构造函数"<< endl;	
    	}
    };
    int main(){
    	GirlFriend g;//实例化对象
    	GirlFriend gs[10];
    
    
    	Stu s;//实例化对象 调用构造函数  调用无参的构造函数  Stu()
    	s.show();
    	s.init(110,"张三",13,100);
    	s.show();
    	cout << "---------" << endl;
    	Stu s1(110,"张四",14,100);
    	s1.show();
    
    	//Stu s1 = {};
    	//Stu s1 = {110,"张三",13,100};//class中私有的成员不能再用{}的形式来初始化
    	/*
    	s.no = 10;
    	s.name = "张三";
    	s.age = 13;
    	s.score = 100;
    	*/
    	return 0;	
    }
    

    6.初始化成员 — 构造函数

    公开的属性 可以用 = {} 的形式 ,私有的和保护的不可以;
    语法形式:
    class 类名{
    //构造函数
    类名(形参列表){
    //构造函数体
    }
    };

    构造函数的特点:

    1.构造函数没有返回值类型,也不可以是void;
    2.构造函数的函数名和类型一致(一样);
    3.每一次在实例化对象时,都会自动调用构造函数 ;
    4.一般在构造函数里会进行初始化属性(成员变量);
    5.一个类如果没有实现构造函数,编译器会自动生成一个无参的空构造函数;
    默认生成的构造函数不会对基本数据类型进行初始化工作(垃圾值);
    对于类类型成员会调用其类型的无参构造函数;
    但是当程序员自己提供构造函数以后,编译器将不会再自动生成构造函数;

    6.构造函数可以重载

    通过构造函数重载,可以按照不同的方式来构造对象

    #include <iostream>
    using namespace std;
    
    //封装类   
    class Circle{
    private:
    	double r;
    public:
    	//构造函数 方法  按照不同的方式来创建对象
    	//在成员方法中可以直接访问成员函数
    	Circle(double ar){
    		r = ar;	
    	}
    	Circle(){
    		r = 0;		
    	}
    	void setR(double ar){
    		r = ar;
    	}
    	double getR(){
    		return r;	
    	}
    	double len(){
    		return 3.14*r*2;	
    	}
    	double area(){
    		return 3.14*r*r;	
    	}
    	//成员方法中直接访问成员属性 和 成员方法
    	void show(){
    		cout << "我是一个半径为:"<< r << "的圆,面积为:"<<area() << ",周长为:"<< len() << endl;	
    	}
    };
    
    
    int main(){
    	Circle c;
    	c.setR(2);
    	//cout << c.getR() << "," << c.area() << "," << c.len() << endl;
    	c.show();
    	Circle cir(4);
    	//cout << cir.getR() << "," << cir.area() << "," << cir.len() << endl;
    	cir.show();
    	return 0;	
    }
    
    

    Circle c; – 创建对象c 调用无参的构造函数 Circle()
    Circle cir(); – 函数声明 声明一个返回Circle类型的函数,没有形参
    – cir是函数,不是Circle对象

    7.对象、属性和函数(方法)

    成员函数(方法)里面可以访问属性(成员变量),也可以直接调用其它的成员函数
    在类外面只能访问public的属性和方法,而且必须通过
    对象.属性
    对象.函数名(实参列表);

    8.对象的构造过程

    先分配内存—>调用构造函数—>调用类类型成员的构造函数进行构造成员—>执行构造函数体

    9. 栈 和 堆里对象

    Circle c;
    Circle c();//不是创建对象
    Circle *pc = new Circle();
    Circle *pc = new Circle;

    注意:
    new申请类类型成员对象时 会调用构造函数 而 malloc则不会;

    #include <iostream>
    #include <cstdlib>
    using namespace std;
    
    //平面坐标点类
    class Point{
    private:
    	double x;
    	double y;
    public:
    	Point(double x1,double y1){
    		x = x1;
    		y = y1;
    	}
    	//一般来说都会手动提供无参的构造函数 以防止
    	Point(){
    		cout << "Point()构造函数" << endl;
    		x = 0;
    		y = 0;
    	}
    };
    
    //平面圆类
    class Circle{
    private:
    	Point center;
    	double r;
    	//默认生成的无参构造函数 对于基本数据类型 不会做初始化
    	//但是对于类类型成员 会调用其类型的 无参构造函数
    public:
    	Circle(){//先构造成员对象center  调用Point类的构造函数
    		cout << "Circle()构造函数" << endl;				
    	}
    	void show(){
    		
    	}
    };
    
    int main(){
    	//Point p(0,0);
    	Circle c;//分配内存 调用Circle的构造函数   Circle()
    	//注意:
    	Circle cir();//cir是Circle类的对象吗?  不是的
    	//函数声明  即声明了一个函数 该函数返回一Circle类型的对象,没有任何形参
    	//cir.show();  cir是一个函数 不是一个对象
    	cout << "----- "<<endl;
    	Circle *pc1 = new Circle;//调用构造函数 创建对象
    	Circle *pc2 = new Circle();//调用构造函数 创建对象
    	delete pc1;
    	delete pc2;
    	cout << "----------------" << endl;
    	Circle *pc3 = static_cast<Circle*>(malloc(sizeof(Circle)));//malloc不会调用构造函数
    
    	return 0;	
    }
    
    展开全文
  • 如何创建一个静态

    2018-04-20 15:37:00
    这里的静态,指以static关键字修饰的,包括,方法,块,字段。 非静态,指没有用static 修饰的。 静态有一些特点: 1.全局唯一,任何次的修改都是全局性的影响 2.只加载次,优先于非静态 3.使用方式上不...

    这里的静态,指以static关键字修饰的,包括类,方法,块,字段。

    非静态,指没有用static 修饰的。

    静态有一些特点:

    1.全局唯一,任何一次的修改都是全局性的影响

    2.只加载一次,优先于非静态

    3.使用方式上不依赖于实例对象。

    4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。

    关于静态内部类(嵌套类)和非静态内部类的区别,可参考:

    (1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。

    (2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。

    (3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

    /* 下面程序演示如何在java中创建静态内部类和非静态内部类 */
    class OuterClass{
      private static String msg = "GeeksForGeeks";
      // 静态内部类
      public static class NestedStaticClass{
        // 静态内部类只能访问外部类的静态成员
        public void printMessage() {
         // 试着将msg改成非静态的,这将导致编译错误 
         System.out.println("Message from nested static class: " + msg); 
        }
      }
      // 非静态内部类
      public class InnerClass{
        // 不管是静态方法还是非静态方法都可以在非静态内部类中访问
        public void display(){
         System.out.println("Message from non-static nested class: "+ msg);
        }
      }
    } 
    class Main
    {
      // 怎么创建静态内部类和非静态内部类的实例
      public static void main(String args[]){
        // 创建静态内部类的实例
        OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
        // 创建静态内部类的非静态方法
        printer.printMessage();  
    // 为了创建非静态内部类,我们需要外部类的实例 OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.new InnerClass();//这样new出来的 // 调用非静态内部类的非静态方法 inner.display(); // 我们也可以结合以上步骤,一步创建的内部类实例 OuterClass.InnerClass innerObject = new OuterClass().new InnerClass(); // 同样我们现在可以调用内部类方法 innerObject.display(); } }

    转载于:https://www.cnblogs.com/TangGe520/p/8891192.html

    展开全文
  • java007如何java创建一个类

    千次阅读 2019-04-16 20:22:37
    二,如何在java中创建一个类?定义属性,方法,以及实例化一个对象并调用类里面的内容? 方法:1:无进无出:没有返回值,没有参数传 2:无进有出:没有返回值,有参数 3:有进无出:有返...

    一,编程的一般思路
    1,ooa:面向对象分析
    2,ood:面向对象设计
    3,oop:面向对象编程
    4,测试
    5,项目交接,给客户演示,演示完了项目就上线运行,运行期间有bug就项目升级(后期维护)----是收钱的哦
    二,如何在java中创建一个类?定义属性,方法,以及实例化一个对象并调用类里面的内容?
    方法:1:无进无出:没有返回值,没有参数传
    2:无进有出:没有返回值,有参数
    3:有进无出:有返回值,没有参数
    4:有进有出 :有返回值,有参数

    在这里插入图片描述

    三,方法重载:就是方法名相同,方法参数的个数和类型不同,通过个数和类型的不同来区分不同的函数。Java的重载是发生在本类中的,重载的条件实在本类中有多个方法名相同,但参数列表不同
    ###同一个类中,方法名相同,参数列表不同(1:参数个数不同2:参数类型不同3:参数顺序不同),切记:跟返回值类型无关,跟修饰符无关(public就是一个修饰符)
    他们两个就构成了方法重载::::
    在这里插入图片描述
    思考:一个类中为什么要定义那么多的同名方法呢(方法重载)?
    原因是每个方法的具体实现有差异,我们不能以偏概全
    四,全局变量和局部变量
    全局变量都是有默认值,而且在类的任何地方都可以使用,说白了就是定义在方法之外的变量
    ###8种基本数据类型的默认值
    在这里插入图片描述
    局部变量:定义在方法中,形参上,或者是一个块中,局部变量的作用域是从它的括号({})开始到结束.
    ###形参: 在方法被调用时用于接受外界输入的数据;(方法中的参数)
    ###实参:   调用方法时外界传给方法的数据;

    注意:局部变量是没有默认值的,在你使用之前必须给它赋值

    五,this关键字

    在这里插入图片描述

    在这里插入图片描述
    1:代表当前类对象
    2:区分同名属性和局部变量
    ####当全局变量和局部变量重名时,在方法中使用this时,表示的是该方法所在类中的全局变量
    在这里插入图片描述
    3:调用本类中重载的构造器,谁调用它,它就是谁这个this必须写在构造器的第一句

    在这里插入图片描述
    六,构造器:构造方法,构造函数.
    类在构建对象的时候系统会默认的去那个构造器,如果类中你自己没有定义构造器,系统会自动帮你生成一个无参构造器 。
    构造器的作用是:1,初始化对象(给属性赋值)构造器也能重载
    2.构造代码块,代码块 { }
    构造代码块是在实例化对象的时候优先于构造器先执行的
    构造代码块的作用:是给对象的共性赋值,比如张三爱吃米饭,李四爱吃米饭,王五也爱吃,所有人都爱吃米饭,所以用构造代码块给共性赋值
    ###我在百度上搜了一点:
    在这里插入图片描述
    七,引起类的加载方式
    注意:实例变量(普通属性)隶属于构造代码块—就是谁在前面谁先执行
    ###实例变量(全局变量):独立于方法之外的变量,不过没有 static 修饰。

    String str="hello world"; // 实例变量
    

    1:实例化对象,new的时候

    int s=new ...
    

    2:调用类里面的静态属性或静态方法
    3:Class.forName(); 加载驱动(反射机制)
    八,Static关键字
    1:修饰属性
    属性就是静态属性(类属性,类属性就是该属性是属于类的,不属于对象的),可以直接通过类名访问,所以实际共享该类属性

    2:修饰方法
    该方法可以直接被类名调用注意:静态方法中不能使用非静态属性静态方法中不能使用this和 super关键字
    在这里插入图片描述
    3:修饰代码块
    {}静态代码块是最先执行的,在整个程序运行期间只执行一次,用于数据库连接

    static{} 
    

    4:静态导入

     import static java.lang.System.out;
    

    就是输出时不再输System.;直接out.println();
    九,8种基本数据类型对应的封装类

    在这里插入图片描述
    学习这8个封装类主要学习它里面的api
    8种基本数据类型和8种对应的封装类可以自动转换,这8种封装类里面用的最多的一个api就是将字符串转成数字
    注意:char不能进行字符串转数字
    boolean只有字符串是ture的时候才转ture,其他都是false
    在这里插入图片描述
    十,内存分配
    Java中内存分为5个
    1:栈:存放基本类型的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new 出来的对象)或者常量池中(字符串常量对象存放在常量池中)
    2:堆:存放所有new出来的对象。
    3:常量存储区:存放常量
    4:静态存储区:存放静态成员(static定义的)
    5:方法区
    ==是用来判断地址
    栈和堆的区别:栈中的数据大小和生命周期是可以确定的,当没有引用指向数据时,这个数据就会消失。堆中的对象的由垃圾回收器负责回收
    栈的优势是,存取速度比堆要快

    展开全文
  • 第二课 如何创建一个类和对象

    千次阅读 2014-11-10 20:46:12
    第二课 如何创建一个类和对象 如何创建一个类和对象
  • 一个类如何创建一个对象?

    千次阅读 2016-06-05 10:58:42
     具体方法: 构造函数只调用次->将成员函数(构造、析构)定义为私有,定义静态成员变量char*s(所有变量所共有),再编写(静态)2函数,函数1功能:当s!=NULL new开辟空间;函数2功能:当s!=NULL ? 释放 s*...
  • Java中如何创建一个枚举Enum

    千次阅读 2019-12-10 15:22:21
    从jdk5出现了枚举后,定义一些字典值可以使用枚举类型。 枚举常用的方法是 values():对枚举中的常量值进行遍历; valueof(String name) :根据名称获取枚举中定义的常量值;要求字符串跟枚举的常量名必须一致...
  • 1.创建一个Person对象,Person p; 此语句会在栈内存中开辟一个名为p的空间; 2.通过p = new Person();语句将对象实例化,此语句会在堆内存中创建一个空间,此空间用于存放对象的属性值,并且将栈内存的中的实例p...
  • 如何一个文件中创建个类

    千次阅读 2010-03-09 12:17:00
    问:如何在一个文件中... 答:(1)创建一个类CADOConnection。创建时通过点击文件名下的"change"按钮将文件名修改成ADO.h和ADO.cpp。 (2)创建第二个类CADODataSet。创建时也是点击"change"按钮将文件名修改成
  •  静态建立对象:是指全局对象,静态对象,以及分配在栈区域内的对象,编译器对它们的内存分配是在编译阶段就完成的,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。...
  • 题目:如何创建一个只能在堆上产生对象的一、分析: 1.定义一个只能在堆上产生对象的,自然联想到new、malloc、calloc等动态分配内存的方法来产生对象。但在C++中,产生对象要调用构造函数,当然选择new来解决...
  • 创建一个类时,java.lang.Object是如何成为新创建类的默认父类的?
  • 1.先创建创建一个Hello.java) 2.按i之后给Hello.java文件编写内容 3.点击ESC之后,输入:wq将编辑的内容进行保存 4.使用javac编译java文件,编译之后会多一个.class文件 5.通过java命令运行Hello....
  • object-c如何创建一个简单的

    千次阅读 2013-07-27 09:02:47
    实例为我们展示了在object-c中,如何创建和使用(class),不要忘记,object-c是面向对象的啊。 Fraction,,正如它的含义所在一样,这程序只提供了打印分数的例子。 1. 代码:  //文件名:Fraction.h #...
  • 如何类创建一个学生链表,可实现插入,删除,查找等功能,,!,,,,,,,,,,,,,
  • java里面如何创建一个内部的实例?

    千次阅读 2013-04-26 11:39:09
    要想使用new 生成一个内部的实例,需要先指向一个外部的实例,也就是先生成外部的实例,因为内部可以调用外部的人员成员,当没有外部实例的时候也就没有这些成员的内存空间,内部在实例化的时候,调用...
  • 本文主要概述了如何使用autofac创建类的新对象,并通过两具体了实例对创建的整个过程进行了演示!
  • 如何创建一个servlet

    千次阅读 2018-08-01 15:31:27
    2.再在该包下创建一个java.class,比如HelloServlet 3.在HelloServlet下写代码,主要两个步骤:  a:继承HttpServlet  b: 复写HttpServlet中的doGet()和doPost()方法。  技巧:在idea中,直接写doGet()再...
  • 本节主要记录ardupilot chibios如何创建一个线程,欢迎批评指正。 1.如何创建线程 在使用RTOS时,创建一个新线程是最常见的开发任务,这是在chibios/rt中完成的。 1.默认线程 在使用chibios/rt的初始化 ...
  • C++如何运行时从字符串创建一个类

    千次阅读 2011-03-27 21:36:00
    要完成运行时从字符串创建一个类,最简单的方法就是写一个冗长的字符串分支语句,这样最直接但却最死板,每次增加或者修改一个类我们都不得不修改这段分支代码.这里提供一个灵活的方法.   首先定义一...
  • 能实现吗?在外部中 db = openOrCreateDatabase("test.db", Context.MODE_PRIVATE, null); 方法不好啊 我的外部是 implements Runnable 还是说不能在这重写run方法里面创建呢?
  • 如何创建一个线程?

    千次阅读 2018-09-25 23:00:51
    我们都知道多线程可以并发执行任务,在某些情况下多线程或许不能提高执行效率,因为多线程虽然看上去是并发执行的,实际上还是CPU分配...那么如何创建一个线程呢?创建线程有两种方法,第一种就是继承Thread,第二...
  • Java中如何创建一个文件或者文件夹

    千次阅读 2019-07-09 16:54:04
    Java中如何创建一个文件或者文件夹 创建一个文件夹: 调用Java中File中的mkdir( )或者mkdirs( )方法 boolean makdir( ):创建一个文件夹,创建成功返回true,创建失败返回false。 boolean makdirs( ):创建一...
  • 如何创建一个不能被继承的

    千次阅读 2012-09-11 15:05:09
    在C#中,有sealed关键字表明这个类不能被继承。但是C++中没有这个关键字,所以想达到这样的目的还是得费点功夫。 先看程序吧: class Uninheritable { friend Base; private: Uninheritable(){} }; class ...
  • 如何创建一个android输入法

    千次阅读 2013-07-01 17:48:31
    如何创建一个android输入法 [技术/11月 11, 2012] android 输入法 为了创建一个输入法来输入信息到文本输入框或者其它View,你需要扩展 android.inputmethodservices.InputMtehodService。这个API提供了很...
  • 这是因为Swift中private修饰符的含义和传统面向对象中的不太一样,在Swift中private只是限制在同一个文件中的可见性.所以要想它真正发挥作用,你必须在外部文件中才能体会到: class ViewController : ...
  • 昨天一个同学去网易面试C++研发,问到了这么一个问题:如何限制一个类对象只在栈(堆)上分配空间? 一般情况下,编写一个类,是可以在栈或者堆分配空间。但有些时候,你想编写一个只能在栈或者只能在堆上面分配...
  • 如何创建类

    2019-03-04 16:52:20
    java最基础的就是类,class分为成员变量和成员,分别就为事物的属性和行为,创建类时要把事物的属性和行为描述清楚 类的格式和初始化 ... 使用这个类时要创建一个新的对象,然后在对象中引用类即可。 以下为一...
  • 初学vb,建立一个简单的登陆Form,使用创建类的方法,事先设立一个密码和用户名,在登陆时,提醒密码和登陆名错误,若成功时跳到下一个Form,不会编写代码以及方法的调用

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,031
精华内容 9,212
关键字:

如何创建一个类