ToB企服应用市场:ToB评测及商务社交产业平台

标题: 面向对象-基础篇 [打印本页]

作者: 莱莱    时间: 2022-9-2 01:11
标题: 面向对象-基础篇
前言:

  1. //用变量
  2. String DogName = "小白";
  3. int DogAge = 6;
  4. char DogSex= '公'
  5. String DogName = "小新";
  6. int DogAge = 6;
  7. char DogSex= '公'
  8. //用数组
  9. String[] Dog = {"小白","6","公"}; //数字类型不明确
  10. String[] Dog = {"小新","6","公"}; //数字类型不明确
复制代码
类与对象是什么:


快速入门:

  1.     public static void main(String[] args) {
  2.         Cat cat1 = new Cat();//创建第一个猫对象
  3.         cat1.name = "小白";//给属性赋值
  4.         cat1.age = 10;
  5.         System.out.println(cat1.name +" "+ cat1.age);//输出属性值
  6.         Cat cat2 = new Cat();//创建第二个猫对象
  7.         cat2.name = "小新";//给属性赋值
  8.         cat2.age = 20;
  9.         System.out.println(cat2.name +" "+ cat2.age);
  10.     }
  11. }
  12. class Cat{//定义一个猫类
  13.     String name;//属性
  14.     int age;
  15. }
复制代码
  1. Class Cat{
  2.   String name; // 可以叫 1.属性 2.成员变量 3.字段   
  3.   int[] age;  // 可以放所有基本数据类型和引用类型
  4.   doeble money;      
  5. }
  6. pring(car.name+" "+car.age...)//直接输出属性,会输出属性默认值
  7. //int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,
  8. //boolean false,String null
复制代码
 类和对象的内存分配机制:


 成员方法:

  1. public static void main(String[] args) {
  2.         Cat cat = new Cat();
  3.         cat.show();//调用方法
  4.     }
  5. }
  6. class Cat{
  7.     String name = "小白";
  8. /*
  9.     public 公共的 -- 作用域(当然还有其它的)
  10.     void -- 表示方法没有返回值
  11.     int -- 表示方法返回值,基本数据类型,引用类型都可以
  12.     return -- 表示把值返回
  13.     show-- 方法名
  14.     () -- 形参列表,表示可以接收形参
  15.     {} -- 方法体     
  16. */
  17. public void show(){
  18.   //方法体
  19.    System.out.println("我叫"+name);
  20.   }
  21. <br>//有参返回
  22. public int show2(int i, int n ){
  23.     return i+n;
  24. }
  25. }
复制代码

  1. 访问修饰符 返回数据类型 方法名(形参列表..) {//方法体
  2.             语句;
  3.             return 返回值; //如果是viod就需要该存在了
复制代码
  1. }
复制代码
  1. class Dog{
  2.   //1.返回多个结果
  3.    public int[] king(){
  4.       int[] sum = new int[3];
  5.       sum[0] = 1;
  6.       sum[1] = 2;
  7.      return sum; //返回多个结果   
  8.    }
  9.   
  10.   //2.void可以写return,但不能有返回值
  11.    public void king2(){
  12.      pring("加油");
  13.      return;
  14.    
  15.    }
  16. //3.可以返回兼容的类型
  17.   public double king3(){
  18.      int  i = 99;
  19.      return i ;
  20.    
  21.    }
  22.       
  23. }
复制代码
  1. //一个方法可以有0个参数,也可以有多个参数有逗号隔开
  2.     public int show(int num1, int num2){
  3.         return num1+num2;
  4.     }
  5.     //参数类型可以是任意类型,基本数据类型或引用类型
  6.     public int[][] show2(int[][] map){
  7.         int[][] nums = new int[11][11];
  8.         return nums;
  9.     }
复制代码

  1. class A{
  2.     public void print(){
  3.         System.out.println("我在同类中的其它方法调用了");
  4.     }
  5.     //同类中可以直接调用其它方法
  6.     public void sayOK(){
  7.         print();
  8.         System.out.println("我调用了print()方法");
  9.     }
  10.     //在方法中可以,通过对象调用其它类方法
  11.     public void m1(){
  12.         System.out.println("A的m1被调用");
  13.         new B().hi();
  14.         System.out.println("A的m1现在执行 ");
  15.     }
  16. }
  17. class B{
  18.     public void hi(){
  19.         System.out.println("我是B类的hi()方法");
  20.     }
  21. }
复制代码

 
 方法的重载:

  1. class AA{
  2.     public void show(int i ,int n){
  3.         System.out.println(i+n);
  4.     }
  5.     public void show(int i ,double n){
  6.         System.out.println(i+n);
  7.     }
  8.     public void show(double i ,double n){
  9.         System.out.println(i+n);
  10.     }
  11.     public void show(double i, int n){
  12.        System.out.println(i+n);
  13.     }
  14.    
  15. }
复制代码
  1.     //返回形成列表不能一致,返回类型不同也不行
  2.     public void show(double i ,double n){
  3.         System.out.println(i+n);
  4.     }
  5.     public double show(double i ,double n){
  6.         System.out.println(i+n);
  7.     }
复制代码
 可变参数:

  1. public int sum(int... nums){
  2.         int res = 0;
  3.         for (int i = 0; i < nums.length; i++) {
  4.             res += nums[i];
  5.         }
  6.         return res;
  7.     }
复制代码
  1. public class Test {    public static void main(String[] args) {        AA aa = new AA();        //可变参数的实参可以是数组        int[] num = {1,2,3};        int sum = aa.sum(num);    }}class AA{    public int sum(int... nums){
  2.         int res = 0;
  3.         for (int i = 0; i < nums.length; i++) {
  4.             res += nums[i];
  5.         }
  6.         return res;
  7.     }
  8.     //可以参数可以和普通类型参数一起放在形成列表中,可变参数必须要在普通类型参数后面    public void sum(String name,int... nums){    };
  9.     //一个形成列表只能出现一个可变参数    //public void sum(double... num,int... nums){};//错误}
复制代码
作用域: 

  1. //快速入门
  2. class AA{
  3.     //该属性在AA类中都可以访问
  4.     String name = "king";  //成员变量/属性/全局变量
  5.     public void show(){ //成员方法
  6.         //该属性只能在show()方法中使用
  7.         char sex = '男'; //局部变量
  8.     }
  9. }
复制代码
  1. class AA{
  2.     //1.属性默认值:String是null
  3.     String name;
  4.     //2.属性和局部变量名字可以一致,就近原则访问
  5.     int age;
  6.     //3.属性可以使用访问修饰符
  7.     public char sex;
  8.     public void show(){
  9.         //1.局部变量:没有默认值,不写就错
  10.         char sex = '男';
  11.         //2.属性和局部变量名字可以一致,就近原则访问
  12.         int age = 18;
  13.     }
  14. }
复制代码
 构造器:

  1. class AA{
  2.     String name;
  3.     int age;
  4.    public AA(String name,int age){
  5.        System.out.println("name+age");
  6.        name = name;
  7.        age = age;
  8.    }
  9. }
复制代码

对象创建的流程+构造器版本:



 this关键字:

  1. public class Test {
  2.     public static void main(String[] args) {
  3.         AA aa = new AA("小白",20);
  4.         //1.调用该方法name = null,age = 0
  5.         aa.show();
  6.     }
  7. }
  8. class AA{
  9.     String name;
  10.     int age;
  11.     public AA(String name, int age) {
  12.         //2.因为:这里把name当成了局部变量
  13.         //自己 给 自己 赋值肯定是错误的
  14.         name = name;
  15.         age = age;
  16.         //3.this.name表示当前对象的name属性
  17.         //当前对象是谁?AA aa = new AA("小白",20);
  18.         //所以说是:我自己调用我自己
  19.         this.name = name;
  20.         this.age = age;
  21.     }
  22.     public void show(){
  23.         System.out.println(name+" "+age);
  24.     }
  25. }
复制代码


  1. class AA{
  2.     String name;
  3.     int age;
  4.     public AA(String name, int age) {
  5.         //this关键字访问本类构造器
  6.         this("小白");
  7.         //this关键字访问本类属性
  8.         this.name = name;
  9.         this.age = age;
  10.     }
  11.     public AA(String name) {
  12.         String name = "oop";
  13.         //this关键字可以区分属性和局部变量
  14.         this.name = name;
  15.         this.age = age;
  16.     }
  17.    
  18.     public void t1(){
  19.         //this关键字可以访问本类方法
  20.         this.t2();
  21.         System.out.println("我是t1");
  22.     }
  23.     public void t2(){
  24.         System.out.println("我是t2");
  25.     }
  26. }
复制代码
 
    
 
 
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4