java笔记(3)



简单认识类和对象

类和对象是个比较抽象的概念。
什么是类?
类认为是自定义类型,像C语言中的 struct通过一个类可以产生多个对象 对多个对象的类的统称。
什么是对象?
对象为某个实体,存在类中。
Java是个面向对象的语言,面向对象可以分为:找对象—创对象—使用对象
面向对象的好处:把复杂的事情简单化,只用面对一个对象。
在这里插入图片描述面向过程需要你一步步的去做,而面向对象只需要人和对象之间完成,所有的事交给对象完成。

在Java中类属于引用类型 使用关键字 class 来声明。

//创建个类:
class Person{   //class为定义类的关键字Person为一个类的名字
        //定义在方法外 类里面的就叫成员变量
    //实例成员变量:在对象里面
    //实例成员没有初始化 默认值为对应的0值,引用类型为null,简单类型为0
    //char->\u0000     boolean->false
        public String name;//成员变量
        public  int age;
//静态成员变量:不属于对象里面属于类   和实例成员变量一样默认值
    public static int sum;

    //实例成员方法
        public void eat() {//成员方法
            System.out.println("吃饭");
        }
        //静态成员方法
        public static void fun() {
            System.out.println("fun");
        }
    }
public class Test1 {
    public static void main(String[] args) {
        Person studt = new Person();//通过关键字 new 实例化一个对象
        System.out.println(studt.name);//访问对象中实例成员变量
        System.out.println(studt.age);
        System.out.println(Person.sum);
        studt.eat();
        Person.fun();
    }
//得出的结果:
null
0
0
吃饭
fun

在类中public是访问修饰限定符属于: 公有的
1.类可以通过new 实例化多个对象
2.访问对象中的属性和方法通过" . " 来实现
3.方法通过方法名+“.”,来进行打印
4.static 修饰的需要通过类名来访问,如果用对象来访问编译器会报错
访问方式为:类名 . 属性

static

class TestDemo{
        public int a;
        public static int count;
    }
    public class Test1 {
        public static void main(String[] args) {
            TestDemo t1 = new TestDemo();
            t1.a++;
            TestDemo.count++;
            System.out.println(t1.a);
            System.out.println(TestDemo.count);
            System.out.println("============");
            TestDemo t2 = new TestDemo();
            t2.a++;
            TestDemo.count++;
            System.out.println(t2.a);
            System.out.println(TestDemo.count);
        }
        //结果为:
        1
        1
        ===========
        1
        2

在这里插入图片描述1.静态方法属于类,不属于类的对象
2.可以直接调用静态方法
3.静态方法可以访问静态数据成员,可以更改静态数据成员的值。

封装

1.private

private修饰的成员变量和成员方法无法被类的调用者使用。
在这里插入图片描述
把public改成private,main中name就无法调用类中name了会发生报错
在mian方法中就无法调用name

类的实现者修改了代码(例如把 name 改成 myName), 那么类的使用者就需要大规模的修改自己的代码, 维护成本较高。
被封装的成员或者方法只能在类中使用 。
创建的类如果想要在类的外面使用这就需要getter 和 setter

2.getter 和 setter

class  Student{
    private String Myname;
//提供个接口
    public String getName() {
        return Myname;
    }
    public void setName(String name) {
        Myname = name;
    }
public class Test2 {
    public static void main(String[] args) {
        Student sn= new Student();
        sn.setName("xiaoming");
        System.out.println(sn.getName());
    }
}
//结果:
xiaoming

getName 即为 getter 方法, 表示获取这个成员的值.
setName 即为 setter 方法, 表示设置这个成员的值
*当set方法的形参名字和类中的成员属性的名字一样的时候,就是自己给自己赋值,没有赋值属性。因为局部变量优先
当封装的成员太多时可使用编译器上的快捷键来自动生成getter 和 setter
右键呼出在这里插入图片描述

关键字

this :对应当前对象的引用

class  Student{
    private String Myname;
//提供个接口
    public String getName() {
        return Myname;
    }
    public void setName(String Myname) {
        Myname = Myname;//会报错
        //加上this后
        this.Myname = Myname;
    }
public class Test2 {
    public static void main(String[] args) {
        Student sn= new Student();
        sn.setName("xiaoming");
        System.out.println(sn.getName());
    }
}

set中形参和类名一样这时会报错但如果在Myname前加上== this==,可通过编译。
this(); 其他构造方法必须放在第一行,不能在静态方法中使用this.

构造方法

new
1.为对象分配内存
2.调用合适的构造方法

1).方法名称必须与类名称相同
2).构造方法没有返回值类型声明
3).每一个类至少存在一个构造方法

class studet {
   private String name;
   private int age;
   private String sex;
    public studet() {
        this.name="xiaoming";
        this age=11;
        this.sex="男"
    }
    }studet()就是构造函数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值