08-04

package com.atguigu.exer;

import java.awt.Label;

public class Account {

  private int id;

  private String pwd = "000000";

  private double balance;

  private static double interestRate;

  private static double minMoney = 1.0;

  private static int init = 1001;

  public Account() {

     id = init++;

  }

  public Account(String pwd, double balance) {

     id = init++;

     this.pwd = pwd;

     this.balance = balance;

  }

  public String getPwd() {

     return pwd;

  }

  public void setPwd(String pwd) {

     this.pwd = pwd;

  }

  public static double getInterestRate() {

     return interestRate;

  }

  public static void setInterestRate(double interestRate) {

     Account.interestRate = interestRate;

  }

  public static double getMinMoney() {

     return minMoney;

  }

  public static void setMinMoney(double minMoney) {

     Account.minMoney = minMoney;

  }

  public int getId() {

     return id;

  }

  public double getBalance() {

     return balance;

  }

  @Override

  public String toString() {

     return "Account [id=" + id + ", pwd=" + pwd + ", balance=" + balance + "]";

  }

}

package com.atguigu.exer;

public class AcconutTest {

  public static void main(String[] args) {

     Account acct1 = new Account();

     Account acct2 = new Account("123456", 2323);

     Account.setInterestRate(0.001);

     Account.setMinMoney(50000);

     System.out.println(acct1);

     System.out.println(acct2);

    System.out.println(acct1.getInterestRate());

     System.out.println(acct1.getMinMoney());

  }

}

package com.atgyugu.java;

public class CircleTest {

  public static void main(String[] args) {

     Circle c1 = new Circle();

     Circle c2 = new Circle();

     System.out.println(c1.getId());

     System.out.println(c2.getId());

     System.out.println(Circle.getTotal());

  }

}

class Circle {

  private double radius;

  private int id;

  public Circle() {

     id = init++;

     total++;

  }

  public Circle(double radius) {

     this();

     this.radius = radius;

  }

  private static int total;

  private static int init = 1001;

  public double findArea() {

     return 3.14 * radius * radius;

  }

  public double getRadius() {

     return radius;

  }

  public void setRadius(double radius) {

     this.radius = radius;

  }

  public int getId() {

     return id;

  }

  public static int getTotal() {

     return total;

  }

}

package com.atgyugu.java;

/*

 * static关键字的属性

 *

 * 1static :静态的

 *

 * 2static 可以用来修饰:属性、方法、代码块、内部类

 *

 * 3、使用static修饰属性:静态变量

 *     3-1属性,按是否使用static修饰,又分为:静态属性 vs 动态属性

 *        实例属性:我们创建了类的多个对象,每个对象都独立的拥有一套类中的非静态属性

 *        当修改其中一个对象中的非静态属性,不会导致其他对象中的同样属性值的修改

 *

 *        静态变量:我们创建了类的多个变量,多个对象共享同一个静态变量。当通过某一个对象修改静态变量时,

 *        会导致其他对象调用次变量,是修改过的

 *  

 *     3-2静态变量可以通过类来调用,实例属性必须通过对象调用,使用对象的存储

 *    

 *  

 * 4、使用static修饰方法:静态方法

 *     ①随着类的加载而加载,可以通过.静态方法的方式进行调用

 *     ②    静态方法    非静态方法

 *           y      n

 *        对象   y      y

 *

 *     ③静态方法中,只能调用静态的方法或属性

 *     非静态的方法中,即可以调用非静态的方法或属性,也可以调用静态的方法和属性

 *

 * 5static注意点:

 *     5.1在静态的方法内,不能使用this关键字、super关键字

 *     5.2关于静态属性和静态方法的使用,从声明周期理解

 *

 * 6.开发中如何让确定一个属性要声明为static

 *     属性

 *     属性可以被多个对象所共享的,不会随着对象的不同而不同的

 *     方法

 *     操作静态属性的方法,通常设置为static

 *     工具类中的方法,习惯上声明为static的。比如MathArrays

 *

 */

public class StaticTest {

  public static void main(String[] args) {

     Chinses.nation = "中国";

     Chinses c1 = new Chinses();

     Chinses.show();

  }

}

class Chinses {

  String name;

  int age;

  static String nation;

  public void eat() {

     System.out.println("中国人吃中餐");

  }

  public static void show() {

     System.out.println("我是一个中国人");

  }

}

package com.atgyugu.java2;

/*

 * 饿汉式vs懒汉式

 * 饿汉式 坏处:对象加载时间长。好处:线程安全

 *

 * 懒汉式 坏处:不安全   好处:延迟对象的创建

 *

 *

 *

 */

public class SingletonTest1 {

  public static void main(String[] args) {

     Bank bank1 = Bank.getInstsnce();

     Bank bank2 = Bank.getInstsnce();

  }

}

//饿汉式

class Bank {

  private Bank() {

  }

  private static Bank instance = new Bank();

  public static Bank getInstsnce() {

     return instance;

  }

}

package com.atgyugu.java2;

public class SingletonTest2 {

  public static void main(String[] args) {

     Bank bank1 = Bank.getInstsnce();

     System.out.println(Bank.getInstsnce());

  }

}

//懒汉式

class Order {

  private Order() {

  }

  private static Order instance = null;

  public static Order getInstance() {

     if (instance == null) {

       instance = new Order();

     }

     return instance;

  }

}

package com.atgyugu.java3;

/*类的成员之四:代码块

 *

 * 1、代码块的作用:用来初始化类、对象

 * 2、代码块如果有修饰的话,只能用static

 * 3、分类:静态代码块 vs 非静态代码块

 * 

 * 4、静态代码块

 *   >内部可以有输出语句

 *   >随着类的加载而加载,而且只执行一次

 *   >内部可以有输出语句

 *  >随着类的加载而执行优先于非静态代码块执行

 *  >静态代码块只能调用静态的属性、静态的方法、不能 调用非静态的结构

 * 

 *

 * 5、非静态代码块

 *     >内部可以有输出语句

 *     >随着对象的创建而执行

 *     >每创建一个对象,就执行一次非静态代码块

 *     >作用:可以在创建对象时,对对象的属性初始化

 *     >如果一个类中定义了多个非静态代码块,则按照声明顺序的先后执行

 *     >非静态代码块可以调用静态的属性、静态的方法,或非静态的属性、非静态的方法

 *

 *

 * 5、对属性可以赋值的位置:

 * ①默认初始化

 * ②显示初始化

 * ③构造器初始化

 * ④有了对象以后,可以通过对象.属性对象.方法的方式,进行赋值

 * ⑤在代码块中赋值

 *

 */

public class BlockTest {

  public static void main(String[] args) {

     String desc = Person.desc;

     Person p1 = new Person();

  }

}

class Person {

  // 属性

  String name;

  int age;

  static String desc = "我是一个人";

  // 构造器

  public Person() {

  }

  public Person(String name, int age) {

     this.name = name;

     this.age = age;

  }

  // 代码块

  {

     System.out.println("hello");

  }

  static {

     System.out.println("hello,static");

  }

  // 方法

  public void eat() {

     System.out.println("吃饭");

  }

  @Override

  public String toString() {

    

package com.atgyugu.java3;

/*

 * final:最终的

 *

 * 1.final可以用来修饰的结构:类、方法、变量

 *

 * 2.final 用来修饰一个类:此类不能被其他类继承

 *

 * 3.final 用来修饰方法:表明此方法不可以被重写

 *

 * 4.final 用来修饰一个变量:此时的就成为常量

 *     final修饰属性:可以赋值的位置:显式初始化,代码块中初始化、构造器中初始化

 *

 *

 *

 *

 */

public class FinalTest {

}

final class Final{

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值