java项目启动 类与对象
java小白的第一篇深夜csdn 没人看 写给我自己 类与对象 start
传统认知的类
每当我们做什么事情的时候 很习惯的将事情归类 也有各种各样的分类方式,比如:事件的紧急程度,事件的性质,对事情的感兴趣的程度 等等等 我们倾向于 给不同的类贴上不同的标签,分类的方法,类的内容,全看个人,没有准确的定义与边界。但是在编程世界中,类与类之间有明确的划分,不同的方法类也不同。编程世界是将感性的世界用理性010101表达出来,更像数学。
编程世界中的类
-
下面是百度中搜索出来的类的定义
类的定义:类是现实世界或思维世界中的实体在计算机中的反映,它将数据以及这些数据上的操作封装在一起。 -
举个例子吧:学生可以单独做一个类进行封装,老师也可以作为一个类进行封装,但是具体哪一个学生的成绩不可作为类进行封装,可以看作给某个特定的群体开辟了一个空间,用来储存他们,不被外界所打扰。
传统认知的对象
- 对象,顾名思义,行动或思考时作为目标的事物。比如,一个猎人要去打猎,他的猎物就是他今天行动的对象。对象,一般指具体的事物,具体的你相中的事物,比如,你看上的某个色号的口红,这个口红就是你要购买的对象(当然,这里不提你男朋友 = 你对象这件事情)。
编程世界中的类
- 百度定义的对象
对象的定义:对象是具有类类型的变量。
-对象,我刚接触编程时,觉得你定义了一个学生类,学生类里面定义int age,int grade这些就是对象。后面越写越有了另一种体会,类是对对象的封装,不同的对象对应于不同的类,对象还是占内存的,不同的对象还对应不同定义方式。具体的说吧,某个对象时独属于某个类的对象,可以调用,可以用来实现某些功能。类将对象封装起来。这些类中对于某个对象的定义描述了这个对象身上的属性。
类与对象
类可能是抽象,而对象是类的具体实例。类,不占用内存,对象,占用存储空间。类是用于创建对象的框架,它是一个定义包括在特定类型的对象中的方法和变量的软件模板。
软件对象也是有状态和行为,同类中不同的对象的状态会不同,通过属性来体现,行为也会不同通过方法来体现。化而言之,就是找寻同类事物中的共有属性,共有的行事逻辑来对一件事情进行描述
在软件开发中,方法操作对象内部状态的改变,对象的相互调用也是通过方法来完成。
JAVA中类与对象的创建
public class Dog{
String breed;
int age;
String color;
void barking(){
}
void hungry(){
}
void sleeping(){
}
}
上面的一段代码是java中类与对象的创建
Dog – 类名
age color这些是狗的属性
barking hungry sleeping 这些是狗的行为 也称方法 我更喜欢叫他们调用函数(毕竟我是先学的c++ java有点直男了) 写了一个函数
int sleeping(int hours){
int sleepinghours = hours;
return sleepinghours;
}
这个函数的意思是 狗在睡觉 传入进去的是狗的睡眠时间 返回的值就是狗子的睡眠时间。
类与对象中的变量
-
局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。比如:狗狗睡觉时间那个方法中(叫函数不香么,非要叫方法),sleepinghours就是局部变量。
-
成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。(比如age,color就是成员变量)
-
类变量:类变量也声明在类中,方法体之外,但必须声明为 static 类型。
PS:成员变量和类变量的区别
成员变量和类变量的区别:
1、两个变量的生命周期不同
成员变量随着对象的创建而存在,随着对象的回收而释放。
静态变量随着类的加载而存在,随着类的消失而消失。
2、调用方式不同
成员变量只能被对象调用。
静态变量可以被对象调用,还可以被类名调用。
3、别名不同
成员变量也称为实例变量。
静态变量也称为类变量。
4、数据存储位置不同
成员变量存储在堆内存的对象中,所以也叫对象的特有数据。
静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据。
class Person{
//成员变量,实例变量
String name;
//静态变量,类变量,所有对象共享的属性用static修饰
static String country = "CN";
public void show(){
System. out.println(country + ":" + name); }}
class StaticDemo{
public static void main(String[]args){
Personp = new Person();
System. out.println(p.country); //可以用类名直接调用
System. out.println(Person.country); }} //两个类都可以调用country这个变量 看懂了吗?
(来自百度知道,觉得写得好直接copy了)
构造方法
- 每个类都有构造方法。如果没有定义构造方法,Java 编译器将会为该类提供一个默认构造方法。(没有敲过好多行代码时候不要轻易写构造方法,默认就行了,要不然老报错,烦死了)。
- 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,一个类可以有多个构造方法。不用构造方法要求传进参数不同,不同构造方法构造的对象也不同。
下面是一个构造方法示例:
public class Puppy{
public Puppy(){
}
public Puppy(String name){
// 这个构造器仅有一个参数:name
}
}
创建对象
对象是根据类创建的。在Java中,当你写好一个类时,需要创建关于这个类的对象时,就要创建对象,创建对象需要需要以下三步:
声明:声明一个对象,包括对象名称和对象类型。(类名+对象名)
实例化:使用关键字 new 来创建一个对象。(new一下+构造方法)
初始化:使用 new 创建对象时,会调用构造方法初始化对象。
下面是一个创建对象的例子:
public class Puppy{
public Puppy(String name){
//这个构造器仅有一个参数:name
System.out.println("小狗的名字是 : " + name );
}
public static void main(String[] args){
// 下面的语句将创建一个Puppy对象
Puppy myPuppy = new Puppy( "tommy" );
}
}
编译并运行上面的程序,会打印出下面的结果:
小狗的名字是 : tommy
晚安!!!!下次写:继承派生
下下次写:接口 监听器