• 面向对象


    面向对象语法

    1. 匿名对象

    (1) 匿名对象的概念

    (2) 匿名对象的用途

    (3) 对象的生命周期

    2. static关键字

    (1) static关键字修饰符【类级别】【对象级别】

    (2) static关键字可修饰内容

    ① 字段

    ② 普通方法

    ③ 

    1) 字段

    2) 普通方法

    3) 构造方法

    (3) static修饰字段的效果

    ① 结论:staitc修饰的字段:被改类的所有对象共享:

    ② static修饰那些字段合适

    1) 名字不合适

    2) 共用的就合适  PI=3.14  地球的人口数量

    3) 一般 public static final PI = 3.14  这种字段,常量字段

    (4) static修饰方法的效果

    ① 工具方法,方便使用

    (5) 类级别,对象级别

    ① 类和对象之分

    1) 类:宽泛的指代一类事物:代表了类....

    2) 对象:类中的一个具体的个体

    ② 代码区分【访问区分】

    1) 静态字段,静态方法

    a. 类名.去访问

    2) 非静态的字段及方法

    a. 对象名.去访问

    ③ 代码区分

    1) 对象其实也可以访问静态字段

    a. System.out.println(Student.name);

    b. System.out.println(new Student().name);

    c. 编译之后还是类名.字段名

    2) 静态的字段,对象可以访问

    a. 因为类的东西,每个对象都有.............

    3) 非静态的字段,类名不可以访问

    a. 对象的东西,不是其他人可以访问的

    (6) 变量的分类详解【了解】

    class Studnet{

    static int age;//静态字段

    String name;//普通字段

    void add(){

    int higth = 15;//局部变量

    }

    }

    这些都变量:

    成员变量

    age: 类变量:通过类访问

    name:实例变量【instance--对象】

             局部变量

    higth:局部变量

    1.  分类详解:

    称呼        位置   是否有static      生命周期(开始)         生命周期(结束)

    类变量     类中   √                类被加载的时候放入JVM           类被卸载的时候

    实例变量    类中                     创建对象的时候             对象被销毁

    局部变量    方法内部[形参,代码块]   方法被调用的时候           方法调用完毕

      理解:帮助理解以上内容     

    1. 类被加载的时候 把类的字节码class文件  加载到  JVM中;

    2. 局部变量的作用  一般都是方法中,为了辅助方法完成功能而临时定义的变量;

    1. 类变量   static修饰的成员变量(字段);

    2. 实例变量: 没有static修饰的成员变量(字段);

    3. 以下的说法尽量少用(了解)

    类成员 静态的字段和方法

    实例成员:非静态的字段和方法

    3. 

    (1) 概念

    (2) 包的声明:为了管理将类放入到包

    ① package cn.itsourc.oa.domain;

    1) class Student--编译之后字节码--放入domain

    2) package cn;

    3) class Person

    ② 注意事项

    1) 声明必须放在类文件的最上面

    2) 规范包名命名 都是小写

    (3) 注意目前包的声明,导入,原生命令的方式去使用

    1.  编译(请在命令提示符窗口中进行)

    语法 javac -d . 源文件名.java        // 编译的时候不需要包的!

    实例 javac -d . Test.java

    F:>javac -d . Test.java

    F:>

    2. 运行(请在命令提示符窗口中进行)

    语法 java 包名.子包名.类名

    实例 java cn.itsource.test.PackageDemo1

    类的完全限定名  包名.子包名.类名

    F:>java cn.itsource.crm.oa.domain.Test

    Hello 小姐姐你好呀

    (4) 包的导入:为了从包里面包类拿出来使用

    ① import

    4. 封装

    (1) 概念:封装,安全保密,透气

     

    (2) 封装通过权限来做

    (3) 权限又是什么概念

    (4) 权限修饰符给Java的东西,提供权限

    ① Java关键字,修饰符

    ② private < 默认不写 < protected < public

    1) private :  私有的,除了自己,谁都不能用

    2) public :   公共的,谁都可以用!

    (5) 封装步骤

    (6) 封装的注意事项

    5. this关键字

    1) 官方:this所在的函数,正在被谁调用this就指代谁

    2) 民间 this当前被对象持有,this就指代谁,模板---->复印件

    使用场景

    1. 解决局部变量和成员变量的二义性   ---  get  set 方法中的应用[在get/set可以写this]

    2. 作为返回值返回   this持有对象地址,表示该类的一个对象即是一个数据

    3. 作为参数传递  

    本类中构造方法之间的相互调用       

    public class _14ThisDemo {
        /*
            this的用途
                1.区分字段的二义性
                2.this作为返回值
                3.this也可以作为参数传递
                4.this在一个类中,构造方法的第一句调用其他的构造方法
        */
        public static void main(String[] args){
    
            Student stu = new Student();
            
            System.out.println( stu);
            //调用returnStu() 返回了当前对象的地址值...
            System.out.println( stu.returnStu());
            //Java代码链式写法
            stu.add(10,20).add(18,54).add(17,49);
    
    
            stu = new Student("二狗",19);
    
            System.out.println(stu.getName()+"-------"+stu.getAge());
        }
    }
    //设计代码
    class Student{
        private String name;
        private int age;
        //构造方法功能:创建对象,初始化name字段的值
        Student(String name){
            System.out.println("--------------------");
            this.name = name;
        }
        //创建对象,并初始化name 及age的值!
        Student(String name,int age){
            //this.name = name;
            this(name);//4
            //new Student(name);//会诞生一个新的对象
            this.age = age;
            
        }
        public void setName(String name){
            this.name = name;//1
            System.out.println("this:"+this);
        }
        public Student returnStu(){//【设计代码的时候】,this作为了返回值
            return this;//2
        }
        public Student add(int a,int b){//2
            System.out.println(a+b);
    
            eat(this);//3
            return this;
        }
        public void eat(Student stu){
            System.out.println("如果使用了该方法,必须传入一个Student对象");
        }
        public String getName(){
            return name;
        }
        public void setAge(int a){
            age = a;
        }
        public int getAge(){
            return age;
        }
        Student(){
        }
    }
    View Code
  • 相关阅读:
    十九:数字排重
    十八:十六进制转八进制
    Dubbo Notes
    Concurrent Package
    MySQL(8.0)官方文档阅读笔记
    MyBatis笔记
    分布式事务
    RabbitMQ笔记
    Kafka官方文档阅读笔记
    Cassandra Note
  • 原文地址:https://www.cnblogs.com/xiaoruirui/p/11188175.html
Copyright © 2020-2023  润新知