• java对象和类


    java 是一种面向对象的语言,拥有下面这些特性:
    多态
    继承
    封装
    抽象化

    对象
    实例
    方法
    消息解析

    对象
    简单比喻就是一只猫,有名字,性别,会的技能有撒娇,吃饭。。。
    对象就是指拥有状态和行为的事物


    对象就是从类从被创造的

    public class cat{
        String color;
        int age;
        String name;
        void crew(){
            xxxxx
        }
        void eat(){
           xxxxx
        }
    }
    

    一个类里面可以包含一切变量类型

    • 本地变量:变量被定义在方法,构造函数或块中的变量,该变量会被声明和初始化在方法中,当方法完成的时候该变量就会被销毁

    • 实例变量 实例变量是在类里面的变量但是在方法外面的,这些变量会被初始化当类会实例化的时候,实例变量可以被该类里面的一切方法,构造函数或则块访问

    • 类变量 类变量是声明在一个类里面,在方法外面,并带有static关键词的一些变量

    一个类中,可以有很多方法来访问各种方法的值


    构造函数
    每个类都有一个构造函数,如果我们没有明确的写一个构造函数,Java编译器会为这个类创建一个构造函数

    每次当一个新对象产生,至少一个构造函数会被调用,构造函数的主要规则是他们应该有相同的名和类名一样,一个类可以有大于一个构造函数

    public class Puppy(){
        public Puppy(){//构造函数要和类名一样啊
            xxxxx
        }
    }
    
    
    public calss Puppy(){
        public Puppy(String name){//多了一个参数name
            xxxxx
        }
    }
    

    创建一个对象
    1.声明---一个变量声明需要有变量类型和变量名
    2.实例化----使用new 关键字创造对象
    3.初始化---new关键字紧跟着一个构造函数

    public class createObject{
    	public createObject(String name){ //注意构造函数方法名和类名一致
    		System.out.println("hello"+name);
    	}
    	public static void main(String[] args) {
    		createObject myPuppy = new createObject("blue");
    	}
    }
    

    访问实例变量和方法

    实例化
    ObjectReference = new Constructor();
    
    访问变量
    ObjectReference .VariableName
    
    访问方法
    ObjectReference.MethodName()
    

    demo:

    public class AccessVariableMethod{
    	int catAge;
    	public AccessVariableMethod(String name){ //构造函数,注意不能写了void
    		System.out.println("hello "+name);
    	}
    	public void setAge(int age){
    		catAge = age;
    	}
    	public int getAge(){ //注意写的是int,要对应返回的数据类型
    		return catAge;
    	}
    	public static void main(String[] args) {
    		AccessVariableMethod cat = new AccessVariableMethod("blue");
    		cat.setAge(6);
    		cat.getAge();
    		System.out.println(cat.catAge);
    	}
    }
    


    源文件的声明规则
    1.在一个源文件中只有一个public类,可以有多个非public类
    2.public类名应该和文件名要一样,并且后缀名为.java public class Employee{} Employee.java
    3.如果一个类名定义在一个包package中那么package语句中的源文件应该出现在第一句语句中
    4. 如果导入语句存在,他们应该被写在包声明和类声明之间,如果没有包声明,导入语句应该在源文件第一句
    5.导入和包声明意味着所有的类将出现在源文件中,不可以声明不同导入或则包声明在不同的类中

    Java 包
    简单来说就是 ,分类了类和接口,当开发在Java中,几百个类或则接口将被编写,因此存在包中容易管理

    导入声明
    如果名字规范,Java会容易找到对应的源代码和类
    例如:导入Java可用的所有类
    import java.io.*

    Employee.java

    import java.io.*;
    public class Employee {
    
       String name;
       int age;
       String designation;
       double salary;
    
       // This is the constructor of the class Employee
       public Employee(String name) {
          this.name = name;
       }
    
       // Assign the age of the Employee  to the variable age.
       public void empAge(int empAge) {
          age = empAge;
       }
    
       /* Assign the designation to the variable designation.*/
       public void empDesignation(String empDesig) {
          designation = empDesig;
       }
    
       /* Assign the salary to the variable	salary.*/
       public void empSalary(double empSalary) {
          salary = empSalary;
       }
    
       /* Print the Employee details */
       public void printEmployee() {
          System.out.println("Name:"+ name );
          System.out.println("Age:" + age );
          System.out.println("Designation:" + designation );
          System.out.println("Salary:" + salary);
       }
    }
    

    EmployeeTest.java

    import java.io.*;
    public class EmployeeTest {
    
       public static void main(String args[]) {
          /* Create two objects using constructor */
          Employee empOne = new Employee("James Smith");
          Employee empTwo = new Employee("Mary Anne");
    
          // Invoking methods for each object created
          empOne.empAge(26);
          empOne.empDesignation("Senior Software Engineer");
          empOne.empSalary(1000);
          empOne.printEmployee();
    
          empTwo.empAge(21);
          empTwo.empDesignation("Software Engineer");
          empTwo.empSalary(500);
          empTwo.printEmployee();
       }
    }
    
  • 相关阅读:
    剑指Offer——斐波那契数列
    剑指Offer——旋转数组的最小数字
    剑指Offer——用两个栈实现队列
    剑指Offer——重建二叉树
    剑指Offer——从尾到头打印链表
    剑指Offer——替换空格
    Leetcode 153. Find Minimum in Rotated Sorted Array -- 二分查找的变种
    头条笔试后端开发
    渣浪电话面
    Leetcode 中Linked List Cycle 一类问题
  • 原文地址:https://www.cnblogs.com/cyany/p/9129288.html
Copyright © 2020-2023  润新知