JAVA笔记2__类/封闭性/构造方法/方法的重载/匿名对象

public class Main {
    public static void main(String[] args) {
        Chicken c1 = new Chicken();
        Chicken c2 = null;
        c1.eat();
        System.out.println(c1.age);
        c2 = c1;
        c2.eat();
    }
}

class Chicken{
    int color;
    char sex;
    int age;
    void eat(){
        System.out.println("chikcen1 eat rice.");
    }
}
public class Main {
    public static void main(String[] args) {
        Person p1 = new Person();
        p1.setName("dining");
        System.out.println(p1.getName());
    }
}

/**
 * 封闭性
 * 1.把属性设成私有
 * 2.为属性提供get/set方法
 */
class Person{
    private String name;
    private int age;
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
}
public class Main {
    public static void main(String[] args) {
        Duck p1 = new Duck("fishDining");
        System.out.println(p1.getName());
        Duck p2 = new Duck("fishDining2",20);
        System.out.println(p2.getName()+" "+p2.getAge());
    }
}

/**
 * 构造方法
 * 1.默认(无参)构造方法:public Duck(){}
 * 2.带一个(多个)参数的构造方法:Public Duck(String name){this.name=name;}
 */
class Duck{
    private String name;
    private int age;

    //默认构造方法
    public Duck(){}
    public Duck(String name,int age){
        this.name = name;
        this.age = age;
    }
    public Duck(String name){
        this.name = name;
        System.out.println("I‘m a duck.");
    }
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }
}
public class Main {
    public static void main(String[] args) {
        Woman w1 = new Woman();
        w1.aa();
        w1.aa("keke1");
        w1.aa("keke1",21);
    }
}

/**
 * 方法的重载(方法具有相同名字,但具有不同的参数和不同的定义)
 */
class Woman{
    public String name;
    public int age;

    public void aa(){
        System.out.println("aa1");
    }
    public void aa(String name){
        System.out.println("aa2:"+name);
    }
    public void aa(String name,int age){
        System.out.println("aa2:"+name+":"+age);
    }
}
import java.util.Random;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        new Woman().aa(); //生成一个匿名对象
        new Woman().aa("loveu1");
    }
}

/**
 * 匿名对象:定义一个没有名称的对象,特点:只能使用一次(直接在堆中开辟内存空间,使用后成为垃圾对象,被GC回收)
 */
class Woman{
    public String name;
    public int age;

    public void aa(){
        System.out.println("aa1");
    }
    public void aa(String name){
        System.out.println("aa2:"+name);
    }
    public void aa(String name,int age){
        System.out.println("aa2:"+name+":"+age);
    }
}
时间: 2024-10-15 21:48:42

JAVA笔记2__类/封闭性/构造方法/方法的重载/匿名对象的相关文章

java笔记--超级类Object多线程的应用+哲学家进餐算法内部类与多线程结合

关于Object类中的线程方法: Object类是所有Java类的 父类,在该类中定义了三个与线程操作有关的方法,使得所有的Java类在创建之后就支持多线程 这三个方法是:notify(),notifyAll(),wait(),这几个方法都是用来控制线程的运行状态的. 方法列表如下: notify() : 唤醒在此对象监视器上等待的单个线程 notifyAll() : 唤醒在此对象监视器上等待的所有线程 wait() : 在其他线程时调用此对象的notify()或者notifyAll()方法前,

java.lang.String 类的所有方法

java.lang.String 类的所有方法 方法摘要 char charAt(int index) 返回指定索引处的 char 值. int codePointAt(int index) 返回指定索引处的字符(Unicode 代码点). int codePointBefore(int index) 返回指定索引之前的字符(Unicode 代码点). int codePointCount(int beginIndex, int endIndex) 返回此 String 的指定文本范围中的 Un

java file文件类操作使用方法大全

1.构造函数 [java] view plaincopy public class FileDemo { public static void main(String[] args){ //构造函数File(String pathname) File f1 =new File("c:\\zuidaima\\1.txt"); //File(String parent,String child) File f2 =new File("c:\\zuidaima",&quo

java基础知识回顾之---java String final类之intern方法

public class StringObjectDemo { /** * @param args */ public static void main(String[] args) { String hello = "Hello", lo = "lo"; System.out.print((hello == "Hello") + " ");//true System.out.print((Other.hello == hel

JAVA中Runtime类以及exec()方法,Process的使用

package ioTest.io1; /* * Runtime:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. * 这也是jvm实现跨平台的一个重要原因. * 可以通过 getRuntime 方法获取当前运行时. * API分析: * public class Runtime extends Object * 每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. * 可以通过 getRuntime 方法获

java笔记--String类对象解析与运用

1.String中的equals和==的区别 String是对象而非基本数据类型,不能使用"=="来判断两个字符串是否相当, 判断两个字符串内容是否相同用equals(); 判断两个字符串内存地址是否相同用"==" 2.startsWith(String str): 判断字符串是否以str为前缀 3.endsWith(String str): 判断字符串是否以str为后缀 4.String 字符串的比较: 1).compareTo()和compareToIgnore

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

java笔记--String类格式化当天日期转换符文档

String类格式化当天日期 转换符:%tb : 格式化为月份的英文缩写%tB : 格式化为月份的英文全写%ta : 格式化为星期%tA : 格式化为星期%ty : 格式化为两位年份值%tY : 格式化为四位年份值%tm : 格式化为两位月份值%td : 格式化为两位日期值%te : 格式化为星期一位日期值%tH : 格式化为两位24时制小时值(00-23)%tk : 格式化为两位24时制小时值(0-23)%tI : 格式化为两位12时制小时值(01-12)%tl : 格式化为两位12时制小时值

Java关于Object类中equal方法的理解

话不多说,先上例题 1 package Ch_11; 2 3 public class Test { 4 public static void main(String[] args) { 5 Object circle1 = new Circle(); 6 Object circle2 = new Circle(); 7 System.out.println(circle1.equals(circle2)); 8 } 9 } 10 11 class Circle { 12 double radi