zoukankan      html  css  js  c++  java
  • 面向对象

    //数组定义
    int[] arr= new int[3];//动态初始化
    int[] arr={1,2,3,4}; //静态初始化
    public static int add(int[] arr){
    int sum= 0;
    //遍历一组数组 求和
    for(int i = 0;i<arr.length;i++){
    sum+=arr[i];
    }
    return sum;
    }
    public static void main(String[] args){
    int res =add(new int[]{1,2,3});
    Systen,out,println(res);
    }
    //二维数组的定义
    int[][] arr =new int[3][];
    int[][] arr= new int[3][2];
    //二维数组的静态初始化
    int[][] arr = new int {new int[][]{1,2},[2,3],[3,4,5]};
    int [][] arr ={{1,2},{2,3},{3,4,5}}
    //一维数组的copy
    public static int[] arrCopy(int[] arr){
    int[] des =new int [arr.length];
    for(int i =0;i<arr.length;i++){
    des[i] =aee[i];
    }
    System.out.println("在方法内,亲创建的目标数组的新地址是: +des");
    return des;
    }
    //************************************
    //面对对象。。。。
    现实世界中的事物 Java的类>>对象
    属性 -->成员变量
    行为 -->成员方法
    //学生类
    class Student{
    String name;
    int age;
    String address;
    public void study(){
    System.out.println("学习");
    public void eat(){
    System.out.println("吃饭");
    }
    public void sleep(){
    System.out.println("睡觉");
    }
    }
    }
    class StudentDemo{
    public static void main(String[] args){
    //类名 对象名 = new 类名();
    Student s = new Student();
    //输出成员变量值
    // System.out.println(s.name);
    // System.out.println(s.age);
    // System.out.println(s.address);
    System.out.println(s.name + " "+ s.age+" " +s.address);
    //成员变量赋值
    s.name = "张三";
    s.age =16;
    s.address ="北京";
    //赋值后输出
    System.out.println(s.name +" "+s.age+" " +s.address);
    //调用方法
    s.study();
    s.eat();
    s.sleep();
    }
    }
    //手机类
    class phone{
    String brand;
    int price;
    String color;
    public void call(String name){
    System.out.println("给"+name+"打电话");
    }
    public void sendMessage(){
    System.out.println("发短信");
    }
    public void playGame(){
    System.out.println("玩游戏");
    }
    }
    class PhoneDemo{
    public static void main(String[] args){
    Phone p = new Phone();
    System.out.println(p.brand+" "+p.price+" "+p.color);
    p.brand = "华为";
    p.price = "1000";
    p.color = "白色";
    System.out.println(p.brand +" " +p.price+" " +p.color);
    //调用方法
    p.call("小李");
    p.sendMessage();
    p.playGame();
    }
    }
    //匿名对象、
    class Student{
    public void show(){
    System.out.println("I love study");
    }
    }
    class StudentDemo{
    public void method(Student s){
    s.show();
    }
    }
    class NoNameDemo{
    public static void main(String[] arge){
    Student s = new Student();
    s.show();
    s.show();
    System.out.println("----------");
    //匿名对象
    // new Student();
    //匿名对象调用方法
    new Student().show();
    new Student().show();
    System.out.println("----------");
    //匿名对象作为实际参数传递
    StudentDemo sd = new StudentDemo();
    // Student ss = new Student();
    // sd.method(ss);//s是实际参数
    //匿名对象
    sd.method(new Student());
    //两个都是匿名对象
    new StudentDemo().method(new Student());
    }
    }
    //封装
    class Student{
    String name ;
    private int age;
    public void setAge(int a){
    if(a<0||age>150){
    System.out.println("年龄非法");
    }else{
    age = a;
    }
    }
    public void show(){
    System.out.println("姓名"+name);
    System.out.println("年龄"+age);
    }
    }
    class StudentDemo{
    public static void main(String[] args){
    Student s = new Student();
    s.show();
    System.out.println("--------------------");
    //给成员变量赋值
    s.name="林青霞";
    s.setAge(27);
    s.show();
    System.out.println("---------");

    }
    }
    //**************************
    private关键字
    //特点 :被private 修饰的成员只能本类才能访问
    //  把成员变量用private修饰
    //  提供对应的getXxx()/setXxx()方法,这样在类的外部就可以通过公有的方法对这些私有变量进行访问了
    class Demo{
    private int num = 10;
    public void show(){
    System.out.println(num);
    }
    private void method(){
    System.out.println("method");
    }
    public void function(){
    method();

    }
    }
    class PrivateDemo{
    public static void main(String[] args){
    Demo d =new Demo();
    d.show();
    d.function();
    }
    }
    //Student >>>>>>>>>>>封装和private
    // getXxx()和steXxx()方法
    class Student{
    private Student name;
    private int age;
    public String getName(){
    return name ;
    }
    public void setName(String n){
    name = n;
    }
    public int getAge(){
    return age;
    }
    public void setAge(int a){
    age =a ;
    }
    }
    class StudentText{
    public static void main(String[] args ){
    Student s =new Student();
    System.out.println(s.getName()+" "+s.getAge());
    s.steName("tom");
    s.setAge(27);
    System.out.println(s.getName()+" " +s.getAge());
    }
    }
    //定义一个类Demo,其中定义一个求两个数据和的方法,定义一个测试类Test,进行测试。
    //方式1
    /*class Demo{
    public int sum(){
    int a =10;
    int b = 20;
    int c = a+b;
    return c;
    }
    }*/
    //方式2
    /*class Demo{
    public int sum(int a ,int b){
    return a + b;
    }
    }*/
    //方式3
    class Demo{
    int a;
    int b;
    public int sim(){
    return a+b;
    }
    }
    //测试类
    public static void main(String[] args ){
    //方式1
    Demo d = new Demo();
    System.out.println(d.sum());
    //方式2
    Demo d =new Demo();
    int a = 10;
    int b =20;
    System.out.println(d.sum(a,b));
    //方式3
    Demo d = new Demo();
    d.a=10;
    d.b=20;
    System.out.println(d.sun());
    }
    //定义一个长方形类rectangle,定义求周长girth和面积area的方法,
    //然后定义一个测试类Test2,进行测试。
    import java.util.Scanner{
    class ChangFangXing{
    private int length;
    private int width;
    public ChangFangXing(){}
    public void setLength(int length){
    this.length = length;}
    public void setWidth(int width){
    this.width = width;
    }
    public int getZhouChang(){
    return(length+width)*2;
    }
    public int getArea(){
    return length*width;
    }
    }
    class Test2{
    public static void main(String[] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入长方形的长: ");
    int length = sc.nestInt();
    System.out.println("请输入长方形的宽: ");
    int width =sc.nestInt();
    ChangFangXing cfx =new ChangFangXing();
    cfx.steLength(length);
    cfx.steWidth(width);
    System.out.println("周长是:"+cfx.getZhouChang());
    System.out.println("面积是:+cfx.getArea()");

    }
    }
    }

     

    1 /*Student s = new Student();>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    加载Student.class文件进内存
    在栈内存为变量s开辟空间
    在堆内存为对象开辟空间
    给对象的成员变量进行默认初始化(0/false/null)
    给产生的对象的成员变量进行显示初始化(若类中成员变量使用了赋值语句)

    通过构造方法对对象的成员变量赋值(如果构造方法中使用了赋值语句)
    对象初始化完毕,把实例对象地址(引用)赋值给变量s */
    /*2 对象的成员变量的值都可以在哪些地方被赋值?
    1. 类加载后,进行初始化的时候(系统赋默认值,无法更改系统规定的赋什么默认值)
    2. 在类的定义中显示初始化时(可以根据业务需求)
    3. 构造方法中(根据业务需求)
    4. 使用对象名.变量名 方式赋值或者是使用setXxx方法赋值(根据业务需求)*/

  • 相关阅读:
    .NetCore Grpc 客服端 工厂模式配置授权
    DOCKER 拉取 dotnet 镜像太慢 docker pull mcr.microsoft.com too slow
    Introducing .NET 5
    VSCode 出现错误 System.IO.IOException: The configured user limit (128) on the number of inotify instances has been reached.
    Omnisharp VsCode Attaching to remote processes
    zookeeper3.5.5 centos7 完全分布式 搭建随记
    Hadoop2.7.7 centos7 完全分布式 配置与问题随记
    MySQL索引 索引分类 最左前缀原则 覆盖索引 索引下推 联合索引顺序
    SQL基础随记3 范式 键
    MySQL调优 优化需要考虑哪些方面
  • 原文地址:https://www.cnblogs.com/Chasingdreams/p/6641555.html
Copyright © 2011-2022 走看看