Java中类与对象的初识

 这一部分确实好绕,好难懂,好复杂,那么三好后我们就开始吧

1. 类产生对象,面向对象需要先找到类,由类产生对象的过程叫做实例化

类的表达
                   46.   class PersonalMessage{
        //包含属性(字段)——————>"模板中"成员变量{普通成员变量(内存在对象里头),静态成员变量}
                      如: public String name ="旺财";
        //包含方法——————>成员方法
                           public void eat(){
                                System.out.println(name+"正在吃饭");
                           }
                      }
对类的使用,在main函数中
引用类格式:                    类名 引用变量 =new 类名();  //这里就通过类产生新的对象——————>包含类中的成员
                                            (当这里等于的是null,则这个引用变量不指向任何对象)

假设
class Person{  在main函数中 Person person = new Person();
                           Person person1 =null;    //
                           Person person2 =person;  //person,person2这个引用指向同一个对象
}

改变类中的成员变量:               引用变量 . 类中的成员变量 ="改变的数据"             //引用变量自己设置,存储一块地址
                          System.out.println(引用变量 . 成员变量);               //输出改变的数据或者是类中成员变量的数据


//衔接46
                       PersonalMessage person1=new PersonalMessage();
                       System.out.println(person1.name);————>输出 旺财
                       PersonalMessage person2 =new PersonalMessage();
                       person2.name="二哈";//改变了对象,类中的源对象不影响现对象,新开辟了一个栈中的内存
                       System.out.println(person2.name);————>二哈

  当46中直接为  public String name;
                       PersonalMessage person1=new PersonalMessage();
                       System.out.println(person1.name);————>输出null 为空
                       PersonalMessage person2 =new PersonalMessage();
                       person2.name="二哈";//改变了对象,类中的源对象不影响现对象,新开辟了一个栈中的内存,放着这个新对象
                       System.out.println(person2.name);————>二哈

2.

当类中定义了成员变量,中有静态成员变量(也叫做类变量,只能在类中,方法外定义,储存在了方法区),静态成员变量独立于对象

例如:
       class People{
           public int age;
           public static int num;

       }
       public class text{
           public static void main(String[] args){
           People person1 =new People();
           person1.age++;  //这里需要新建对象
           person.num++;// 静态成员变量是类的,访问方式: 类名.变量名——————> 不依赖对象,不用new 多一个对象
           System.out.println(person1.age);
           System.out.println(person.num);
           }
       }
       //当用多个引用变量产生多个对象是也产生多个"相同"的成员变量时
       例如: age有很多个age?取决于有几个对象


       同理也有静态方法(类方法)

3.普通方法(依赖对象)中不能定义静态成员变量,可以调用静态方法(使用区域更大)

4.

对于java新建文件后就在一个大类中,创造新类需要与大类独立,然后我们可以发现大类当中我们定义方法public static 方法名 符合类中方法是否静态的差别与是否需要对象,然后jvm底层规定main函数为static

5.

private修饰封装

当属性与方法被private修饰后,封装只能在这个类中使用
     例如:
     class Person{        //在类中封装后


        private String name;
        public void setName(String name){              //在main输入字符串
            this.name=name;
        }
        public String getName(){
            return name;
        }

        //当用private封装时需要构造,set和get两个public方法,右键鼠标generate处按get and set

        private int age;
        public void setAge(int age){            //在main输入数字
            this.age=age;    //this表示当前对象的引用
        }
        public int getAge(){
            return age;
        }
     }
     然后在大类的main中
        public class Main {
            public static void main(String[] args){
                Person person1 =new Person();
                person1.setAge(10);//用setAge来设置封装后age,
                System.out.println(person1.getAge());//getAge;
                People.setName("Chen");/
                System.out.println(person1.getName());
      }
}
}

6.关于构造方法

构造方法(一个类至少有一个构造方法)    类中会自动产生一个空白的构造方法(没有其他构造方法时)

在main内产生了对象People person=new People() 的同时,进行了构造方法
既是class People(){
   public People(){   ————————>构造方法里面可以加上不同的类型
       System.out.println("这是个构造函数");
   }
}
然后在main中
People person =new People();——————>    这里会输出"这是个构造函数"

构造方法用来构造对象

54.当有多个构造方法时

   public People(){
      System.out.println("这是个构造函数");
   }
   public People(String name){
       this.name=name;
   }
   public People(String name,int age){
       this.name=name;
       this.age=age;
   }
   在main函数调用时,//括号内几个参数就调用上面的哪个构造方法
   People person1 = new People();
   People person2 = new People("Chen");
   People person3 = new People("Chen",20);

7.关于this

this. 数据     调用当前对象的数据
     this. 方法()    调用当前对象的方法

     this()      调用当前对象的其他构造方法//只能存放在构造方法中

这里放几张图,this()的使用

 

 

 

public People(){
   System.out.println("这是个构造函数");
}
public People(String name){
}
public People(String name,int age){ 
}
 

8.匿名对象

匿名对象(没有引用直接产生的对象,一次性用法)  直接  new 类名().类中的方法();
 

 

 


                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值