类和对象要点归纳

  1. 什么是类? 什么是对象?
    类就是一个模板,对象就是这个模板产生出的实例。比如说类是一张图纸,根据这个图纸可以造出不同的房子(对象)
    Java是面向对象的语言
    在这里插入图片描述
  2. oop(面向对象)语言的三大特征:
    1.封装性:用private修饰成员属性,可以使该成员属性仅在此类中有权访问;
    2.继承性:java中可以使用继承(extends)这种操作,来提高代码重用性;
    3.多态性:基类引用派生类对象,并且基类和派生类有同名的覆盖
  3. 面向过程和面向对象的比较
    面向过程 (C):
    程注重的是过程,在整个过程中所涉及的行为,就是功能。
    面向对象(java,c++):
    注重的是对象,也就是参与过程所涉及到的主体。是通过逻辑将一个个功能实现连接起来。

举例:
面向过程: 1.把冰箱打开 2. 把大象放入 3. 冰箱关起来
面向对象: 打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中。

  1. java(面向对象)编程开发思路

    1.找对象,
    2.创建对象
    3.使用以及扩展对象

  2. 成员方法的调用要通过实例化对象的引用来调用。
    一个类可以实例化多个对象
    当属性值未初始化时,值为对应类型的0值(如布尔为flase)

class Person {
//属性 
    public String name; 实例变量
    public int age;
    boolean flg;
    public  static int count;
    public final  int SIZE =  666;//实例变量
    public static final  int SIZE2 =  666;
    
    //功能
    public  void fun() {
        count++;
    }

    public static void fun2() {
        System.out.println("count:"+count);
        //System.out.println("name:"+name);
        //eat();
    }
    public  void  eat() {
        System.out.println(name+" "+age+"吃饭!");
    }
    public void sleep() {
        System.out.println("睡觉!");
    }
}

然后在主函数中实例化对象并进行相应操作

public class Main{    
public static void main(String[] args) {        
Person person = new Person();//通过new实例化对象        
person.eat();//成员方法调用需要通过对象的引用调用        
person.sleep();       
 //产生对象     
 实例化对象        
 Person person2 = new Person();        
 Person person3 = new Person(); 
    }
 }
  1. 静态成员(static修饰)不属于对象,不依赖与对象,无法通过对象的引用来调用,但可以通过类名来调用,类中static修饰的函数(静态成员方法)无法访问成员实例变量,因为它不属于对象。
class TestDemo{     
public int a;     
public static int count;         
 public static void change() {        
  count = 100;       
    //a = 10; error  不可以访问非静态数据成员 
      }
  } 

public class Main{      
public static void main(String[] args) {       
TestDemo.change();//无需创建实例对象 就可以调用         
System.out.println(TestDemo.count);   
       } 
 }
  1. 为什么main函数是(static)静态的?
    如果没有static,main函数就是一个普通的成员方法,想要运行就必须new一个对象对main函数进行引用,这样主函数就没有入口无法运行。

  2. 封装 将成员属性定义为私有(private),只能通过类内部进行直接访问

class Person { 
 private String name = "张三";    
 private int age = 18;         
 public void show() {         
   System.out.println("我叫" + name + ", 今年" + age + "岁");   
    }
 } 
 
class Test {    
 public static void main(String[] args) {        
 Person person = new Person();       
 person.show();  
    } 
    } 
 
// 执行结果 我叫张三, 今年18岁

除此之外,还可以在类内通过getter和setter函数间接访问和初始化属性值

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}
  1. 实例化一个对象步骤:
    1.为对象分配内存(new)
    2.调用合适的构造函数(如果没写,会自己生成不带参数的一个构造函数)

在这里插入图片描述
构造方法:是一种特殊方法, 使用关键字new实例化新对象时会被自动调用, 用于完成初始化操作.
1.方法名称必须与类名称相同
2.构造方法没有返回值类型声明
3.每一个类中一定至少存在一个构造方法(没有明确定义,则系统自动生成一个无参构造)
构造函数可以重载(改变函数参数的个数及其类型)

  1. this 代表当前对象的引用(并不是指当前对象)(地址)因为
    实例化一个对象分为两步:
    1.为对象分配内存(new)
    2.调用合适的构造函数(如果没写,会自己生成不带参数的一个构造函数)
    编程中要习惯使用this
    (当一个构造函数内用this调用另一个构造函数时,那一句只能放在第一句)

  2. 实例代码块一般用于初始化实例成员变量。
    静态代码块一般用于初始化静态成员属性
    实例代码块先于构造函数执行,静态代码块(只会执行一次)优先于实例代码块执行
    静态>–实例>–构造函数

  3. 匿名对象
    匿名只是表示没有名字的对象. 没有引用的对象称为匿名对象. 匿名对象只能在创建对象时使用. 如果一个对象只是用一次, 后面不需要用了, 可以考虑使用匿名对象.

class Person {   
   private String name;   
   private int age;     
   public Person(String name,int age) {      
   this.age = age;       
   this.name = name;   
     }    
     
      public void show() {        
       System.out.println("name:"+name+" " + "age:"+age);  
          }
          
      } 
      
public class Main { 
public static void main(String[] args) {   
 new Person("张三",18).show();//通过匿名对象调用方法   
   } 
} 
// 执行结果 name:张三:18
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值